asf-tooling opened a new issue, #1071:
URL: https://github.com/apache/tooling-trusted-releases/issues/1071

   **ASVS Level(s):** L2-only
   
   **Description:**
   
   ### Summary
   While ATR provides comprehensive SBOM generation, validation, and management 
tooling for projects it serves, ATR does not maintain a formal SBOM (CycloneDX 
or SPDX format) for its own third-party dependencies. The 
`pip-audit.requirements` file serves as an informal inventory with exact 
versions, and `uv.lock` pins resolved versions, but neither constitutes a 
standard-format SBOM. Without a formal SBOM, automated supply chain analysis 
tools cannot consume ATR's dependency information in a standardized way.
   
   ### Details
   The issue exists project-wide—no SBOM artifact is generated or published for 
ATR's own dependencies. While dependency information exists in multiple formats 
(requirements files, lock files), none conform to SBOM standards (CycloneDX or 
SPDX).
   
   ### Recommended Remediation
   Add SBOM generation to CI workflow:
   
   ```yaml
   # In .github/workflows/analyze.yml or new workflow
   name: Generate SBOM
   
   on:
     push:
       branches: [main]
     release:
       types: [published]
   
   jobs:
     generate-sbom:
       runs-on: ubuntu-latest
       steps:
         - uses: actions/checkout@v4
         
         - name: Set up Python
           uses: actions/setup-python@v5
           with:
             python-version: '3.11'
         
         - name: Install uv
           run: pip install uv
         
         - name: Generate CycloneDX SBOM
           run: |
             uv run --frozen cyclonedx-py environment \
               --output-format json \
               --outfile sbom.cdx.json
         
         - name: Upload SBOM as artifact
           uses: actions/upload-artifact@v4
           with:
             name: sbom
             path: sbom.cdx.json
         
         - name: Attach SBOM to release
           if: github.event_name == 'release'
           uses: actions/upload-release-asset@v1
           env:
             GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           with:
             upload_url: ${{ github.event.release.upload_url }}
             asset_path: sbom.cdx.json
             asset_name: sbom.cdx.json
             asset_content_type: application/json
   ```
   
   Add Makefile target for local generation:
   
   ```makefile
   .PHONY: sbom
   sbom:
        uv run --frozen cyclonedx-py environment \
                --output-format json \
                --outfile sbom.cdx.json
        @echo "SBOM generated: sbom.cdx.json"
   ```
   
   ### Acceptance Criteria
   - [ ] CI workflow added to generate SBOM
   - [ ] SBOM generated on push to main branch
   - [ ] SBOM attached to GitHub releases
   - [ ] SBOM uploaded as build artifact
   - [ ] Makefile target added for local SBOM generation
   - [ ] SBOM format validated (CycloneDX JSON)
   - [ ] Documentation updated with SBOM generation instructions
   - [ ] SBOM includes all Python dependencies from uv.lock
   
   ### References
   - Source reports: L2:15.1.2.md
   - Related findings: None
   - ASVS sections: 15.1.2
   
   ### Priority
   Medium
   
   ---


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to