-
Notifications
You must be signed in to change notification settings - Fork 5
Next steps discussion #3
Comments
Hi! Re: # 3, handling artifacts, DataObject might make sense as a generic class, IFF the artifact is not obviously an Image or a CodeModule. |
Re: # 4, builds, a Process is probably the high-level class to associate with JFrog Builds. |
I think Repositories, Builds and Artifacts would be a great start, and likely to cover over most of the initial security analyst use-cases with this graph data. |
1. Handling JFrog's Permissions
I've attempted to provide some guidance on IAM ingestion as a result of your question, which is one we just talked about extensively at the office in the context of Azure's permissions model. However, I think it needs improvements as I study the JFrog permissions model. JFrog Identity and Access docs indicate that permissions are named (Permission Target Name) groupings of users, groups, resources, and permission statements (Read, Annotate, etc.) I think the Permission Target should generate two entities of class The raw data of the
The permissions make up the relationships between the The simplest form of these relationships can be
Therefore, a much more complex form of the relationships will eventually need to be supported. In the case of AWS, a grant (policy statement) can refer to a resource directly or through similar pattern matching. Since we do not ingest S3 objects, for example, a grant to a specific object becomes a relationship to the bucket. I suspect that in the Artifactory integration, we may need to consider similar concerns. 2. JupiterOne's AccessKey ClassThe API tokens should be 3. Handling JFrog's ArtifactsI don't yet quite understand what exactly an Artifact is, it being such an abstract word 😆 Is every version of a binary an Artifact? Is the package sans version an Artifact? The precise use of "Artifact" will have an impact on the decision of what class to use. I see that it is possible to find Repositories by I don't think we've ever used 4. Handling JFrog's BuildsIf I understand correctly, a Build would be 5. Any other high-value entities/relationshipsAs @erichs points out, we're interested in data that will serve a security analyst. We typically start with identity and access review workflows in mind. This means starting with ingestion of users, groups, permissions, and protected resources. Working from the JFrog Identity and Access docs, it looks like we need to have these resources ingested so an analyst can review access:
|
Thanks a lot for the amazing replies @erichs @aiwilliams ! We've gone through them all, multiple times 😃, and will begin implementing all of what was said. I will keep this reply short as I'm sure we'll have more to write once we make more progress on these 1-5 points. We can also leave this issue open throughout this integration development as a whole.
Haha! Well, here's what we know so far:
So the answers to your questions (with our current knowledge) would be:
Yes, but so long one actually uploads differently named binary files (artifact-v1.png, artifact-v2.png).
As soon as you upload something as an artifact, it "just works". Looking at dashboard there doesn't seem to be some implied version, but because the package you uploaded probably had a name, that seems enough so the answer would be yes here too. P.S We'll continue looking into Artifacts and will update this thread with new findings (if any), just wanted to try to answer your questions as soon as possible! |
Hi everyone, we'd like to start a discussion regarding the next steps:
1. Handling JFrog's Permissions
Our guess is that we don't want these permissions as entities but more to just use them to build the relationships between other entities (e.g. users/groups and repositories).
One idea is that we do the following:
User -> HAS -> AccessPolicy -> MANAGES -> Repository
Group -> HAS -> AccessPolicy -> MANAGES -> Repository (permissions can be applied to groups as well).
Repository seems not to have an owner (outside the fact that the main Account is owning everything), so these permissions can be used as the glue between these entities.
Also, JFrog's permissions have 5 fields (settings like - read, annotate, deploy, delete, manage Xray). We've seen that AccessPolicy has rules array and are wondering if we should use it for this?
Also, maybe the JupiterOne's AccessPolicy is total wrong choice altogether, so that's a question as well - if we should even use that class or something else?
2. JupiterOne's AccessKey Class
Should we perhaps be using this to manage access tokens? We haven't used this class in the past, but we've noticed that it exists.
3. Handling JFrog's Artifacts
One idea is the following:
Repository -> HAS -> Artifacts.
For artifact class, the closest one we've noticed seems to be the DataObject. Should we use that or is there a better choice?
4. Handling JFrog's Builds
One idea is the following:
Build -> PRODUCES -> Artifacts.
For build class, maybe Task?
5. Any other high-value entities/relationships
And of course, if you can suggest some other high-value entity/relationships, please do!
The text was updated successfully, but these errors were encountered: