Skip to content
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

v1: Dataflow graph #35

Merged
merged 42 commits into from
Aug 22, 2024
Merged

Conversation

Shofiya2003
Copy link
Contributor

Dataflow graph consists of two nodes: FileNode[nodeType, name, mode, version] and ProcessNode[nodeType, tid, exec_epoch]

Preview of the graph:
Command: bash -c "head ../flake.nix ; head ../flake.lock"

image

Command: ./PROBE record tests/c/createFile.exe

image

Additional Changes:

  • Fixed the happens before graph to include edge of CloneOp node to the first occurrence of matching pthread_id in the kernel thread instead of all the occurrences

@charmoniumQ
Copy link
Owner

Remove mode from FileNode and remove TID from process node; the threads in a process can communicate with each other, so if one of them knows the contents of a file, they all do.

@Shofiya2003 Shofiya2003 marked this pull request as draft July 26, 2024 13:04
@Shofiya2003
Copy link
Contributor Author

I will resolve the errors caused by pulling the latest changes, address the failing checks, and mark it for review by tomorrow.

@Shofiya2003 Shofiya2003 marked this pull request as draft August 7, 2024 20:32
@Shofiya2003 Shofiya2003 marked this pull request as ready for review August 8, 2024 15:13
@Shofiya2003
Copy link
Contributor Author

I've created a makeshift function to generate a cmd for the ProcessNode since it's not being recorded during the provenance. However, it doesn't handle some edge cases well. Should we consider removing cmd from ProcessNode for now? I can create a PR to add cmd later when we start recording it.

@charmoniumQ
Copy link
Owner

I can put something in libprobe when the user does an ExecOp that has the arguments and environment that got executed.

probe_src/__init__.py Outdated Show resolved Hide resolved
probe_src/python/probe_py/manual/analysis.py Outdated Show resolved Hide resolved
probe_src/python/probe_py/manual/analysis.py Outdated Show resolved Hide resolved
probe_src/python/probe_py/manual/analysis.py Outdated Show resolved Hide resolved
probe_src/python/probe_py/manual/analysis.py Outdated Show resolved Hide resolved
@Shofiya2003
Copy link
Contributor Author

I can put something in libprobe when the user does an ExecOp that has the arguments and environment that got executed.

that would help!

@charmoniumQ charmoniumQ marked this pull request as draft August 15, 2024 17:02
@Shofiya2003 Shofiya2003 marked this pull request as ready for review August 17, 2024 15:47
@charmoniumQ
Copy link
Owner

I still think we don't need any new __init__.py files. Let's resolve that over Discord.

@charmoniumQ charmoniumQ marked this pull request as draft August 20, 2024 06:17
@Shofiya2003 Shofiya2003 marked this pull request as ready for review August 21, 2024 19:01
@charmoniumQ charmoniumQ merged commit 483f50e into charmoniumQ:main Aug 22, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants