Git Product home page Git Product logo

oz's People

Contributors

brl avatar david415 avatar dma avatar femmetasm avatar oholiab avatar tsutsukakushi avatar xsmurf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oz's Issues

Veth not always removed on failure

Sometimes a sandbox might experience some sort of launch failure, if the sandbox uses bridge networking the newly create veth is not always removed properly.

Automatically fix Xpra clipboard recursion bug.

Sometimes Xpra handling of clipboard detects some form of a recursion and disables the clipboard for a sandbox. This should be detected automatically and the clipboard feature toggled back on transparently.

Missing programs still allowed to "launch"

If a profile is installed but the program itself isn't launching said command from a CLI will still result in an "Ok Received" message. Either we need to lookup first and exit(1) if the program is missing, or we need to move to a dpkg/apt hook base installation that only installs the diversion for installed programs (or both).

Find a way to pass theming information

Right now theming information such as Adwaita dark theme isn't passed properly to applications in sandboxes. We need to find a way to properly detect those settings and pass them along.

Support localized home directories

Default directories in the home, such as Downloads and Documents, are localized by renaming them when the user logs in. This is currently incompatible with the whitelist definitions and should be addressed by looking up the dir names from XDG in the future.

Comparison chart

It would be really nice if the main README for oz had a comparison chart that shows the similarities and differences of oz and competitors. This would make it easier for people to understand what exactly oz is and why other products aren't sufficient.

Projects that oz could be compared against include but are not limited to: regular chroots, grsec hardened chroots, lxc, mbox, subuser, docker, systemd-nspawn and full blown virtual machines.

Opening attachments (PDF) in Icedove doesn't work

I thing it is because it tries to launch the sandboxed evince, and this logs into the journal:

Feb 15 11:36:18 subgraph oz-daemon[765]: 2016/02/15 11:36:18 [icedove] (stderr) Cannot run a sandbox from inside a running sandbox!

A workaround is using /usr/bin-oz/evince from within icedove.

Missing closing parenthesis in JSON profiles

It seems that almost all the JSON profiles are corrupted and are missing a closing }.
That is causing errors when launching an oz-setup.

$ cat gajim.json  | python -m json.tool
Expecting object: line 35 column 2 (char 812)

Or when starting oz-daemon:

2015/08/20 17:18:18 Failed to load profiles: error loading 'gajim.json': unexpected end of JSON input

profile for packet capture programs like HoneyBadger

I'd like to be able to make an oz profile for honeybadger ( https://github.com/david415/HoneyBadger )
so that it can be effectively sandboxed while capturing raw ethernet frames and detecting Quantum Inserts (TCP injection attacks).

Currently the recommended way to run honeybadger in Linux is to:

setcap cap_net_raw,cap_net_admin=eip honeyBadger

and then run as a non-root user... however it would be nice to have much more grainular isolation than this; this setcap command gives the program much more authority than is required for packet capture; whereas honeybadger needs read-only access to a single network interface.

What do you think?

Remove seccomp policy files from container filesystem

Right now seccomp policy files are hand-whitelisted in the oz profile document. This was a temporary hack for a time when there was no oz-seccomp support at all in Oz.

Ideally the seccomp policy is read from outside of the Oz sandbox filesystem entirely, as is the JSON Oz profile, which is passed to oz-init via stdin.

Multi instance and disaposable profiles

It would be good to support multiple instances for a profile with a prefix for the whitelisted data.

At the same time it would make it possible to implement disposable profiles (ie non persistent overlay).

Default Tor Browser Download Location & Text Rendering

When clicking the folder icon on the Downloads page of the Tor Browser, it opens up the Files window where the text is not displaying properly (showing up as tiny boxes--see screenshot). It does appear to be pointing to the correct location, though:

/home/user/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US/Browser/Downloads

screenshot from 2016-02-04 18-43-20
screenshot from 2016-02-04 18-43-52

Furthermore, trying to open the file via VLC directly also does not work:

File reading failed:
VLC could not open the file "/home/user/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US/Browser/Downloads/32c3-7277-en-de-Breaking_Honeypots_for_Fun_and_Profit_sd.mp4" (No such file or directory).
Your input can't be opened:
VLC is unable to open the MRL 'file:///home/user/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US/Browser/Downloads/32c3-7277-en-de-Breaking_Honeypots_for_Fun_and_Profit_sd.mp4'. Check the log for details.

Investigate proxy connections stuck in CLOSE_WAIT state

Somehow there are a lot of proxied connections stuck in CLOSE_WAIT, in most cases that number doesn't grow much over time and seems pretty stable but once in a while it seems like it becomes leaky and more are added over time.

Somehow those proxy connections don't seem to close properly and end up getting stuck until timeout.

File exfiltration

Right now the only way for a user to exfiltrate files out of the sandbox is by whitelisting a directory (such as Documents or Downloads) and saving/moving the file in there. There should be a way, in the matter of the ozshell adding files, to bring files that exist only in the sandbox back on the host.

Add ARM support (for Novenas)

I want to use OZ on my Novena - this requires adding support for ARM. At the moment I'm unable to use it because it lacks the seccomp support for this CPU.

Existing diverts for non existing programs launch anyway

If a profile is installed but the program itself isn't launching said command from a CLI will still result in an "Ok Received" message. Either we need to lookup first and exit(1) if the program is missing, or we need to move to a dpkg/apt hook base installation that only installs the diversion for installed programs (or both).

Specify in documentation go dependencies

I'm going through the process of installing Oz. Just a few note, it should be worth noting that it requires Go >=1.4 and an additional couple of packages.
Right now I'm running Go 1.5, and I had to go get github.com/subgraph/go-seccomp and golang.org/x/sys/unix before being able to proceed with the install.

Launching iceweasel / icedove fails

oz-daemon in journalctl logs Failed to setup filesystem: failed to copy path permissions for (/home/user/Downloads/Icedove): unable to apply ACL to file.

@xSmurf claimed it was his fault.

User namespaces not used?

Hello, your project looks great, but I have looked at your code and found this which concerns me:

// Cannot be used from golang as they can one be entered from
//  single threaded processes. See: setns(2)
//Namespace{Path: "ns/mnt", Type: syscall.CLONE_NEWNS},
//Namespace{Path: "ns/user", Type: syscall.CLONE_NEWUSER},

Am I right that you are not using user namespaces? Just because some limitation of Go language?This seems really insecure, unprivileged containers (user namespaces) seems like the only way how to make containers really secure (without it, root in container is like root on host system... at least this is what I have read about it, you can harden it with SELinux/AppArmor or other MAC, but it is still not that secure as user namespaces).

Are you planning to fix this? Or did I overlooked something?

Document that username is not configurable by design

The username is set to user and is not configurable as there is a risk it might leak. This should be mentioned in the docs.

If one still wants to change the username, it also needs to be changed in /etc/paxrat/paxrat_tbl.conf.

Xpra seccomp error

Installation steps worked without obvious errors.
Upon attempting to start evince, I see the following logs from the oz-daemon, at which point it hangs: (oz shell won't let me inspect the crashed container)

2015/08/25 08:50:39 [evince] Hostname set to (evince.local)
2015/08/25 08:50:39 [evince] dbus-uuid: b1a8589a47cb53ad533aeaa255dc8ecf
2015/08/25 08:50:39 [evince] xpra work dir is /home/user/.Xoz/evince
2015/08/25 08:50:39 [evince] Starting xpra server
2015/08/25 08:50:39 [evince] (xpra) E Error (seccomp): function not implemented
2015/08/25 08:50:39 [evince] Child process pid=8 exited with status 1

I've been able to run xpra directly with a seccomp policy specified.

Hexchat whitelist failure

Report from IRC, attempting DCC send to yourself fails due to missing getcwd() and fallocate():

audit: type=1326 audit(1456309666.003:68): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=2196 comm="hexchat" exe="/usr/bin-oz/hexchat" sig=31 arch=c000003e syscall=79 
            compat=0 ip=0x359556f93ea code=0x0


audit: type=1326 audit(1456311752.210:71): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=3554 comm="hexchat" exe="/usr/bin-oz/hexchat" sig=31 arch=c000003e syscall=285 
           compat=0 ip=0x3b696b016bf code=0x0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.