I think I was wrong about rild and was hitting another issue.
I seem to have this all working locally by creating profiles for:
usr.bin.nuntium
usr.bin.powerd
usr.bin.system-settings
usr.lib.indicator-network-service
usr.lib.urfkilld
usr.sbin.NetworkManager
usr.sbin.ofonod
then adjusting these upstart jobs to load the profile prior to launch (I may
end up adjusting all the upstart jobs to be sure):
ofono.conf
powerd.conf
urfkill.conf
To demonstrate what this looks like, the ofonod profile has:
# Permissive profile limit dbus access
/usr/sbin/ofonod (attach_disconnected) {
...
# We can do anything on dbus
dbus (bind, send),
# Some methods are ok by anyone (ie, dbus-daemon itself)
dbus (receive)
bus=system
interface="org.freedesktop.DBus.Properties",
# Limit who can connect on DBus to processes with these apparmor labels (LP:
#1296415)
dbus (receive)
peer=(label=/usr/lib/*/indicator-network/indicator-network-service),
dbus (receive) peer=(label=/usr/sbin/NetworkManager),
dbus (receive) peer=(label=/usr/bin/nuntium),
dbus (receive) peer=(label=/usr/bin/powerd),
dbus (receive) peer=(label=/usr/bin/system-settings),
dbus (receive) peer=(label=/usr/lib/*/urfkill/urfkilld),
dbus (receive) peer=(label=/usr/lib/telepathy/telepathy-ofono),
dbus (receive) peer=(label=ofono_scripts),
...
}
profile ofono_scripts /usr/share/ofono/scripts/* (attach_disconnected) {
capability,
mount,
remount,
umount,
network,
dbus,
ptrace,
signal,
/ rwkl,
/** rwlkmix,
}
All of the peers have permissive profiles ala the 'ofono_scripts' policy
above. Each then gets an apparmor label for it, and the ofonod apparmor
policy allows connections from only those labels (not even unconfined
can connect). Light testing shows that 'list-modems' and 'online-modem'
from /usr/share/ofono/scripts work fine and on reboot the phone comes up
and connects to 3G and generally seems to work ok. indicator-network and
settings all work correctly when switching back and forth between wifi
and 3g). Toggling cellular data works.
I did notice that ubuntu-download-manager gets a denial:
Jun 4 10:19:42 ubuntu-phablet dbus[756]: apparmor="DENIED"
operation="dbus_method_call" bus="system" path="/"
interface="org.ofono.Manager" member="GetModems" name=":1.77" mask="receive"
pid=1350 profile="/usr/sbin/ofonod" peer_pid=4086 peer_profile="unconfined"
Jun 4 10:19:42 ubuntu-phablet dbus[756]: message repeated 16 times: [
apparmor="DENIED" operation="dbus_method_call" bus="system" path="/"
interface="org.ofono.Manager" member="GetModems" name=":1.77" mask="receive"
pid=1350 profile="/usr/sbin/ofonod" peer_pid=4086 peer_profile="unconfined"]
# ps auxww|grep 4086
root 4086 2.0 0.4 65996 7776 ? Sl 10:19 0:00
/usr/bin/ubuntu-download-manager
Should ubuntu-download-manager be added to the list?
** Changed in: indicator-network (Ubuntu)
Status: New => In Progress
** Changed in: network-manager (Ubuntu)
Status: New => In Progress
** Changed in: nuntium (Ubuntu)
Status: New => In Progress
** Changed in: ofono (Ubuntu)
Status: Confirmed => In Progress
** Changed in: powerd (Ubuntu)
Status: New => In Progress
** Changed in: ubuntu-system-settings (Ubuntu)
Status: New => In Progress
** Changed in: urfkill (Ubuntu)
Status: New => In Progress
** Tags added: apparmor application-confinement rtm14
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1296415
Title:
[security] please use apparmor to restrict access to ofono to approved
services
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/indicator-network/+bug/1296415/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs