CycodeLabs / CycodeLabs/raven

Add extra details in the results (workflow, job, step)

Open
#188 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
747
Forks
45
PR merge metrics
No merged PRs in 30d

Description

**Is your feature request related to a problem? Please describe.**
At the moment when results are reported, the report only includes the offending sink workflow/action file. For instance, if you run Raven against `microsoft/graphrag` one of the results will be:

```
Name: Unpinnable Action
Severity: low
Description: Unpinnable actions can lead to software supply chain attacks.
Tags: ['supply-chain', 'best-practice']
Workflow URLS:
- https://github.com/pypa/gh-action-pypi-publish/tree/unstable/v1/action.yml
```
That workflow URL does not belong to `microsoft/graphrag` which makes is difficult to answer "what do I need to fix, and where do I find what's calling this?"

**Describe the solution you'd like**
It would be nice if the following information would be displayed as well:

* Caller Repo Workflow Url
* Job Name
* Step Name

For instance, the `unpinnable-action` query from:

```
MATCH (ca:CompositeAction)
WHERE (
ca.using = "docker" AND (
NOT ca.image CONTAINS "@sha256:"
)
)
RETURN DISTINCT ca.url AS url;
```
would become
```
MATCH (w:Workflow)-[*]->(j:Job)-[*]->(s:Step)-[*]->(ca:CompositeAction)
WHERE (
ca.using = "docker" AND (
NOT ca.image CONTAINS "@sha256:"
)
)
RETURN DISTINCT ca.url AS vulnerable_url, w.path AS workflow_url, j.name AS job, s.name AS step
```

**Additional context**

I'm happy to submit a PR for this, but thought to raise this issue as it will include a significant refactor of the existing code to accommodate it.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.