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

update readme #70

Merged
merged 14 commits into from
Apr 27, 2020
Merged

update readme #70

merged 14 commits into from
Apr 27, 2020

Conversation

itaysk
Copy link
Collaborator

@itaysk itaysk commented Apr 22, 2020

  • reflect the status of go version
  • add a quickstart with docker
  • remove needless information like program output

This is a draft until we push the referenced docker images to aquasec org in docker hub.

@itaysk itaysk requested a review from lizrice April 22, 2020 08:26
@itaysk
Copy link
Collaborator Author

itaysk commented Apr 22, 2020

@yanivagman let's move all the TODOs from the readme to github issues:

Consider tracing commit_creds to detect potential kernel exploits
Pathname is missing in execve(at) syscalls - Issue #2627 in BCC project

do we want to create issues for these?

Copy link
Contributor

@lizrice lizrice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few additions and suggestions here

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved

## Known Issues
## Notes
As pointers are being dereferenced from userspace memory, a malicious program may change the content being read before it actually gets executed in the kernel. Please consider this when doing security related work with Tracee.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this means the Pathname thing is fixed in gobpf?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can't be true

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I guess we could either leave this note about Pathname in the readme, or do we want to track it in our own issue?

README.md Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved

Adding new events (especially system calls) to Tracee is straightforward, but one should keep in mind that tracing too many events may cause system performance degradation. Other than that, high event rate can cause samples to be lost (an error message will then be shown as part of the output). For this reason, *read* and *write* syscalls are deliberately excluded from Tracee.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You removed the part that says that adding new events to Tracee is easy. I think this is a differentiator from other projects, and it should be noted in the readme

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lizrice suggested this belongs in the contribution guidelines. wdyt?

@itaysk
Copy link
Collaborator Author

itaysk commented Apr 23, 2020

@lizrice @yanivagman I think I addressed your comments, can you please re-review?

@itaysk itaysk marked this pull request as ready for review April 26, 2020 09:40
Copy link
Contributor

@lizrice lizrice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggested couple minor typos, but otherwise looks good. Do you think we should keep that note about the missing pathname in execve due to BCC bug?

README.md Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated

* Pathname is missing in execve(at) syscalls - Issue #2627 in BCC project
When Tracee reads information from user programs it is subject to a race condition where the user program might be able to change the arguments after Tracee has read them. For example, a program invoked `execve("/bin/ls", NULL, 0)`, Tracee picked that up and will report that, then the program changed the first argument from `/bin/ls` to `/bin/bash`, and this is what the kernel will execute. To mitigate this, Tracee also provide "LSM" (Linux Security Module) based events, for example the `bprm_check` event which can reported by tracee and cross-referenced with the reported regular syscall event.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When Tracee reads information from user programs it is subject to a race condition where the user program might be able to change the arguments after Tracee has read them. For example, a program invoked `execve("/bin/ls", NULL, 0)`, Tracee picked that up and will report that, then the program changed the first argument from `/bin/ls` to `/bin/bash`, and this is what the kernel will execute. To mitigate this, Tracee also provide "LSM" (Linux Security Module) based events, for example the `bprm_check` event which can reported by tracee and cross-referenced with the reported regular syscall event.
When Tracee reads information from user programs it is subject to a race condition where the user program might be able to change the arguments after Tracee has read them. For example, a program invoked `execve("/bin/ls", NULL, 0)`, Tracee picked that up and will report that, then the program changed the first argument from `/bin/ls` to `/bin/bash`, and this is what the kernel will execute. To mitigate this, Tracee also provides "LSM" (Linux Security Module) based events, for example the `bprm_check` event which can be reported by tracee and cross-referenced with the reported regular syscall event.

README.md Outdated Show resolved Hide resolved

## Known Issues
## Notes
As pointers are being dereferenced from userspace memory, a malicious program may change the content being read before it actually gets executed in the kernel. Please consider this when doing security related work with Tracee.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I guess we could either leave this note about Pathname in the readme, or do we want to track it in our own issue?

itaysk and others added 4 commits April 27, 2020 17:25
Co-Authored-By: Liz Rice <liz@lizrice.com>
Co-Authored-By: Liz Rice <liz@lizrice.com>
Co-Authored-By: Liz Rice <liz@lizrice.com>
@itaysk itaysk merged commit c06e936 into aquasecurity:master Apr 27, 2020
@itaysk itaysk deleted the readme branch April 27, 2020 14:43
pathtofile pushed a commit to pathtofile/tracee that referenced this pull request Oct 21, 2020
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.

None yet

3 participants