Commit Graph

6 Commits

Author SHA1 Message Date
Oliver Chang 5675ec6958
Rename execSan to SystemSan. (#8369)
* Rename execSan to SystemSan.

All of the bug detectors we've built (or plan to build) relate to system
state.

* fix documentation

* fix more documentation
2022-08-30 08:40:46 +10:00
Dongge Liu dead89aa00
A PoC of `execSan` with `node-shell-quote` v1.7.3 (#7843)
* A PoC with `node-shell-quote` v1.7.3.

* A description of the shell injection bug in the prev version of shell-quote and how to reproduce it with `execSan`.

* Amend the instructions to run `execSan` on `node-shell-quote` and `pytorch-lightning`.
2022-06-14 09:58:21 +10:00
Dongge Liu 639cc9588e
Execsan syntax error (minor fixes) (#7806)
* Removes the `: ` prefix in our previous pattern to capture case ii and reduce false negatives:
   1. Our previous pattern (i.e. `: Syntax error`) is designed to reduce false positives, but it relies on `dash` to print out an error message within one `write` syscall. E.g. `sh: 1: Syntax error: "invalid_command" unexpected`.
   2. In some cases, `dash` breaks the message into multiple `write` syscalls. E.g. it invokes 2 `writes` whose buffers respectively contain `sh: 1:`, ` Syntax error: "invalid_command" unexpected`.

* Fix outdated wording

* A TODO about using more specific patterns of error messages
2022-06-07 11:50:30 +10:00
Dongge Liu 62f034e81d
Detect shell injection based on syntax errors (#7795)
* Remove redundant tripwire from Makefile

* Detect shell corruption based on syntax errors

* Type, name, format, typo, etc.

* Error pattern matching logic

* clang-format

* Code structure fix

* Extend the pathname length of shell to be safe

* Remove redundant operations on memory read from regs

* More specific patterns

* Identify sh

* Remove redudant substr

* Document shell corruption in README.md

* Clang-format

* Organise printf/debug_log/cerr

* Remove a completed TODO

* Use readlink instead of `file`

* Clang-format
2022-06-06 14:14:01 +10:00
Oliver Chang a5d3ab8cb0
execSan: Follow forks. (#7771)
* execSan: Follow forks.

- ptrace all child processes.
- Look for execve() calls with /tmp/tripwire as the first argument.
  There's no need for it to actually run.
- Convert to C++.

* remove ununused tripwire code

* comments
2022-05-30 10:31:12 +10:00
Dongge Liu e249bcc669
An attempt to detect shell injection with `ptrace` (#7757)
* An attempt to detect shell injection with ptrace

* Relocate sanitizer files

* Add headers and file descriptions

* Better cleanup

* Name and analogy

* TODOs

* safer cleanup

* More descriptive name

* More descriptive README.md

* More descriptive file names

* One more TODOs
2022-05-26 15:37:04 +10:00