Add doc/sandbox (osx seatbelt and openbsd systrace support)
This commit is contained in:
parent
2ebab53fc5
commit
4a4022dffb
5 changed files with 122 additions and 2 deletions
4
doc/osx
4
doc/osx
|
|
@ -31,5 +31,5 @@ $ cd binr/radare2
|
|||
$ make osxsign
|
||||
|
||||
To create the package
|
||||
cd macports
|
||||
make
|
||||
|
||||
$ sys/osx-pkg.sh
|
||||
|
|
|
|||
5
doc/sandbox/Makefile
Normal file
5
doc/sandbox/Makefile
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
all:
|
||||
# must succeess
|
||||
sandbox-exec -f radare2.sb /usr/bin/r2 /bin/ls
|
||||
# must fail
|
||||
sandbox-exec -f radare2.sb /usr/bin/r2 /bin/md5
|
||||
34
doc/sandbox/README.md
Normal file
34
doc/sandbox/README.md
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
Sandboxing r2
|
||||
=============
|
||||
|
||||
OSX:
|
||||
|
||||
OSX Seatbelt implements a system-level sandbox for applications,
|
||||
it's rules are defined in lispy .sb file:
|
||||
|
||||
sandbox-exec -f radare2.sb r2 -S /bin/ls
|
||||
|
||||
NOTE: r2 -S is an alias for -e cfg.sandbox=true
|
||||
|
||||
|
||||
OpenBSD:
|
||||
|
||||
$ man systrace
|
||||
|
||||
Generate default profile
|
||||
|
||||
$ systrace -A r2 /bin/ls
|
||||
|
||||
Run with the generated profile
|
||||
|
||||
$ systrace -a r2 -S /bin/ls
|
||||
|
||||
Windows:
|
||||
Linux:
|
||||
Only r2's sandbox is supported.
|
||||
- disables file system access
|
||||
- disables network connectivity
|
||||
- disables forks (no shell escapes or debugger)
|
||||
- activated before showing the prompt
|
||||
|
||||
$ r2 -S /bin/ls
|
||||
39
doc/sandbox/rabin2.sb
Normal file
39
doc/sandbox/rabin2.sb
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
; Seatbelt script to sandbox radare2 in OSX
|
||||
; =========================================
|
||||
; --pancake <nopcode.org>
|
||||
;
|
||||
|
||||
(version 1)
|
||||
(debug all)
|
||||
|
||||
; (allow default)
|
||||
|
||||
(deny network*)
|
||||
(deny system*)
|
||||
(deny sysctl*)
|
||||
(deny file-write*)
|
||||
(deny file-ioctl)
|
||||
(deny mach*)
|
||||
|
||||
|
||||
; disables debugger and ! shell escape
|
||||
(allow process*)
|
||||
(deny process-fork)
|
||||
|
||||
; record trace log
|
||||
; (trace "r2.log")
|
||||
|
||||
; (deny file-read* (subpath "."))
|
||||
; (allow file-read*)
|
||||
; (deny file-read*)
|
||||
|
||||
(allow file-read*
|
||||
(regex
|
||||
#"^/Users/[^.]+/*/radare2/"
|
||||
#"^/usr/share/radare2/*"
|
||||
#"^/usr/lib/system/*"
|
||||
#"^/usr/lib/libr*"
|
||||
#"^/usr/bin/rabin2"
|
||||
)
|
||||
)
|
||||
(deny default)
|
||||
42
doc/sandbox/radare2.sb
Normal file
42
doc/sandbox/radare2.sb
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
; Seatbelt script to sandbox radare2 in OSX
|
||||
; =========================================
|
||||
; --pancake <nopcode.org>
|
||||
;
|
||||
|
||||
(version 1)
|
||||
(debug all)
|
||||
|
||||
; (allow default)
|
||||
|
||||
(deny network*)
|
||||
(deny system*)
|
||||
(deny sysctl*)
|
||||
(deny file-write*)
|
||||
(deny file-ioctl)
|
||||
(deny mach*)
|
||||
|
||||
|
||||
; disables debugger and ! shell escape
|
||||
(allow process*)
|
||||
(deny process-fork)
|
||||
|
||||
; record trace log
|
||||
; (trace "r2.log")
|
||||
|
||||
; (deny file-read* (subpath "."))
|
||||
; (allow file-read*)
|
||||
; (deny file-read*)
|
||||
|
||||
(allow file-read*
|
||||
(regex
|
||||
#"^/Users/[^.]+/.config/radare2/$"
|
||||
#"^/Users/[^.]+/*/radare2/"
|
||||
#"^/usr/share/radare2/*"
|
||||
#"^/usr/lib/system/*"
|
||||
#"^/usr/bin/radare2"
|
||||
#"^/usr/lib/libr*"
|
||||
#"^/usr/bin/r2"
|
||||
#"^/bin/ls"
|
||||
)
|
||||
)
|
||||
(deny default)
|
||||
Loading…
Reference in a new issue