Commit graph

2883 commits

Author SHA1 Message Date
Jamie Strandboge
1f003c0120 abstraction updates for abstract, anonymous and netlink
- the base abstraction for common abstract and anonymous rules (comments
  included per rule)
- dbus-session-strict to add a rule for connecting to the dbus session
  abstract
  socket. I used 'peer=(label=unconfined)' here, but I could probably lose the
  explicit label if people preferred that
- X to add a rule for connecting to the X abstract socket. Same as for
  dbus-session-strict
- nameservice to add a rule for connecting to a netlink raw. This change could
  possibly be excluded, but applications using networking (at least on Ubuntu)
  all seem to need it. Excluding it would mean systems using nscd would need to
  add this and ones not using it would have a noisy denial

Acked-By: Jamie Strandboge <jamie@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-09-03 14:21:31 -05:00
Jamie Strandboge
1245d9c287 update avahi-daemon for fine-grained netlink mediation
Acked-By: Jamie Strandboge <jamie@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-09-03 14:16:32 -05:00
Seth Arnold
c4d40cede0 Fix Debian bug 756807, clang inline functions
Fix clang warnings about inline functions needing either a non-inline
definition or 'static' if they aren't used outside a translation unit.
http://clang.llvm.org/compatibility.html#inline
http://clang.debian.net/status.php?version=3.4.2&key=UNDEF_REF

Signed-off-by: Seth Arnold <seth.arnold@canonical.com>
Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-29 17:40:30 -07:00
John Johansen
659e5ff11d fix: [patch 05/12] Make the af type protocol mappings available for use
before the af type protocol mappings patch was applied, a single rule could
result in multiple rule entries being created. The af type protocol mappings
patch broke this by apply only the first of the mappings that could be
found.

Restore the previous behavior by search through the entire table until
all matches have been made.

Signed-off-by: John Johansen <john.johansen@canonical.com>
Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-25 15:29:20 -07:00
Kshitij Gupta
9e37c3278e Fix the value being set in nt_name when allowed path exist
The patch:
- sets nt_name to the path, if it is allowed.

Acked-by: Christian Boltz <apparmor@cboltz.de>

(acked on IRC based on a link to the ML archive[1])

[1] https://lists.ubuntu.com/archives/apparmor/2014-August/006194.html
2014-08-26 03:13:42 +05:30
Christian Boltz
a620f18cf0 aa.py / ask_the_question() - simplify duplicate option prevention
add a add_to_options() helper function to aa.py which
- adds newpath to options if it's not already there
- returns the updated options and the index of newpath

This removes duplicated code for CMD_GLOB and CMD_GLOBEXT in 
ask_the_question()

It also adds duplicate prevention to CMD_NEW.


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>
2014-08-25 22:49:29 +02:00
Christian Boltz
4608322da9 better error message in aa.py when reaching EOF unexpectedly
When reaching EOF while still in a profile (syntax-wise), there are two
possible reasons:
- missing "}"
- missing "," in the last rule (which means that, thanks to multiline 
  rule handling, the "}" is considered to be part of the last rule)

This patch improves the error message in aa.py to cover a missing ","


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>.
2014-08-25 22:05:45 +02:00
John Johansen
1930675a9b Make the af type protocol mappings available for use
Signed-off-by: John Johansen <john.johansen@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-24 00:00:28 -07:00
John Johansen
bccca11bf6 add generic lookup of af_name mappings
Signed-off-by: John Johansen <john.johansen@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-23 23:57:55 -07:00
John Johansen
f5704761b5 provide a mapping of sock type and name and a fn to look access the mapping
Signed-off-by: John Johansen <john.johansen@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-23 23:55:33 -07:00
John Johansen
54655cf9a4 Add network.c, network.h, missing from previous ci 2014-08-23 23:55:12 -07:00
John Johansen
d3c229fc48 group network rule bits into their own file
Signed-off-by: John Johansen <john.johansen@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-23 23:52:15 -07:00
John Johansen
9fe1e72c44 put the gettext define in one place
Signed-off-by: John Johansen <john.johansen@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-23 23:50:43 -07:00
Jamie Strandboge
0465bdbf81 Update perl abstraction to allow reading /usr/lib/@{multiarch}/perl{,5}/**
Acked-By: Jamie Strandboge <jamie@canonical.com>
2014-08-21 07:28:44 -05:00
Jamie Strandboge
ac481f142e Allow /var/lib/extrausers/group and /var/lib/extrausers/passwd 'read' in order
to work with libnss-extrausers

Acked-By: Jamie Strandboge <jamie@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-21 07:27:07 -05:00
Jamie Strandboge
6db2f7d4eb Newer version of libvirt have a lease helper. Update dnsmasq policy for this.
Acked-By: Jamie Strandboge <jamie@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-20 22:06:15 -05:00
Jamie Strandboge
502e992c42 Update perl abstraction, logprof.conf, severity.db and tests for Debian/Ubuntu
perl multiarch paths

Acked-By: Jamie Strandboge <jamie@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-20 19:14:24 -05:00
Christian Boltz
5006abbbb2 Fix "Invalid mode found: AUDITING" in aa-logprof. Actually the fix is
done in logparser.py which contained "AUDITING" instead of "AUDIT" at
one place.

References: https://bugs.launchpad.net/apparmor/+bug/1358705


Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-21 00:55:44 +02:00
Christian Boltz
427258d07a remove unused REs in logparser.py
Those REs also exist (and are used) in aa.py.


Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-18 21:01:38 +02:00
Christian Boltz
784837301b Fix a bug in logparser.py add_event_to_tree(). It looked for '\\null-/'
but should look for '//null-' instead.

Also remove some code duplication by merging with the next condition, 
which executes the same self.add_to_tree code.


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>.
2014-08-17 21:50:15 +02:00
Christian Boltz
51eb1bd69c fix a crash in aa.py / check_for_LD_XXX():
File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aa.py", line 126, in check_for_LD_XXX
  for line in f_in:
  [...]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf8 in position 40: ordinal not in range(128)

While on it, also replace usage of the "found" variable by "return" 
statements, which should bring a small performance improvement - if we 
have a match, it's superfluous to continue searching.

The patch also adds me to the copyright header ;-)


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>.
2014-08-17 18:16:33 +02:00
Christian Boltz
ddd78f97d9 Simplify simple_tests/profile/flags/*bad*.sd testcases to make sure
they only fail because of one (expected) reason and we notice if they
don't fail anymore. Complex profiles have the risk to fail for multiple
reasons, which also means nobody will notice if they fail for one reason
less.

The simplification is done by
- removing #include lines
- in some cases, replace the #include line with "/foo/bar r," to avoid 
  empty hats

Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-16 13:22:51 +02:00
Seth Arnold
0ba4c8cd7e Ensure the that the {**,} and {,**} regexs are being properly parsed by
the Python tools.

Signed-off-by: Seth Arnold <seth.arnold@canonical.com>
Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-08-14 10:51:42 -07:00
Tyler Hicks
e46fa6d92f tests: Update unix_socket.sh for kernel ABI v7
Kernel ABI v6 only required 'w' permissions for the parent process that
creates the socket, accepts a connection, writes to the socket, and
reads from the socket.

Kernel ABI v7 will require 'rw' permissions for the parent process. This
change detects the current kernel ABI version and adjusts the parent
process's confinement appropriately. It also performs a negative test to
make sure that 'w' is not sufficient.

Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-11 23:59:34 -05:00
Tyler Hicks
a2d0cc1a97 tests: Minimal update to make unix_socket.sh aware of abstract sockets
This change only sets up unix_socket.sh to test abstract sockets.
Unconfined processes are tested while using an abstract socket but
the test function returns before testing with confinement.

Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-11 23:59:28 -05:00
Tyler Hicks
f7465573b7 tests: Modify unix_socket/unix_socket_client to accept abstract names
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-11 23:59:17 -05:00
Tyler Hicks
1cd336386e tests: Rename the unix_socket_file test to unix_socket
Rename the test in preparation for expanding its capabilities to cover
all UNIX domain socket address format types.

Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-11 23:58:51 -05:00
Tyler Hicks
fc8c936361 tests: Don't leak socket fd to child process
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-11 23:56:17 -05:00
Christian Boltz
0c904eb476 smbd: changed cachedir in openSUSE
openSUSE now compiles samba --with-cachedir=/var/lib/samba (instead of 
the default /var/cache/samba). This patch updates the smbd profile to 
match this change.


Acked by: Seth Arnold <seth.arnold@canonical.com>
2014-08-11 23:22:55 +02:00
Christian Boltz
61ac0a0ac4 dovecot/auth needs read access to /etc/dovecot/* when using plaintext
user/password files (everybody will use a different filename for the 
user/password list - and when you allow reading the password list, 
allowing to read the config doesn't add any harm ;-)

References: https://bugzilla.novell.com/show_bug.cgi?id=874094

Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-08-11 23:16:22 +02:00
Christian Boltz
d5e6058370 apparmor:vim: add mediate_deleted and delegate_deleted flags
Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-11 23:13:55 +02:00
Christian Boltz
c814443a83 Set the currently selected path as (editable) default when using "(N)ew"
in aa-logprof or aa-genprof.

Acked-by: Kshitij Gupta <kgupta8592@gmail.com>
2014-08-06 19:07:41 +02:00
Christian Boltz
356e7cb199 aa-mergeprof: honor -d parameter
(it was ignored until now)

Acked-by: Kshitij Gupta <kgupta8592@gmail.com>.
2014-08-04 20:19:08 +02:00
Christian Boltz
265270b83c From: Jeff Mahoney <jeffm@suse.com>
Subject: perl-apparmor: Properly handle bare 'file' keyword
References: bnc#889652

The bare file keyword is a shortcut for /{**,}. There are also implied
permissions that go with it.

This patch accepts the file keyword as well as allowing for missing mode
specifiers.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>

Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-02 12:46:15 +02:00
Christian Boltz
c7f7b8d7e0 From: Jeff Mahoney <jeffm@suse.com>
Subject: perl-apparmor: Handle bare 'capability' keyword
References: bnc#889651

Specifying 'capability' implies all capabilities, but the perl code didn't
recognize it.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>

Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-02 12:45:26 +02:00
Christian Boltz
d6f1895465 From: Jeff Mahoney <jeffm@suse.com>
Subject: perl-apparmor: Fix bare 'network' keyword handling
References: bnc#889650

The 'network' bare keyword was being printed as "audit network all" due to
two different bugs:

1) {audit}{all} was always being set to 1, regardless of whether the audit
   keyword was used
2) {rule} eq 'all' is the wrong test - it should be {rule}{all}

With these fixed, 'network' is properly handled.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>

Acked-by: Steve Beattie <steve@nxnw.org>
2014-08-02 12:43:54 +02:00
Christian Boltz
241544ad8a modify aa-mergeprof to:
- allow users to merge two profiles (2-way merge) using aa-mergeprof by
  making the third profile optional
- re-enable code that cleaned up base and other profile and using it in
  deleted count (was disabled due to pyflakes thinking it was unused)

Patch by Kshitij Gupta <kgupta8592@gmail.com>


Acked-by: Christian Boltz <apparmor@cboltz.de>
2014-07-29 12:39:12 +02:00
Christian Boltz
37ca3dd556 add some more globbing tests for globs with extension, including
filenames that contain a * wildcard and a .* regex wildcard.

Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-07-28 20:16:04 +02:00
Christian Boltz
be6cb6724d fix aa-mergeprof to
- import apparmor.ui as aaui
- call aaui.UI_*() instead of apparmor.aa.UI_*()
- use apparmor.aamode.AA_MAY_EXEC instead of apparmor.aa.AA_MAY_EXEC


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>.
2014-07-28 00:24:26 +02:00
Steve Beattie
ab2ac92ecf utils: make all tests consistent in verbosity
This patch adjusts the verbosity of several of the utils tests,
to make them all consistently verbose.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-07-25 17:49:06 -07:00
Christian Boltz
dd3b6a8d4a Set PYTHONPATH=.. in runtests-py3.sh to make sure the tests use the in-
tree python modules.

Also remove "sys.path.append('../')" (and now-unused "import sys") from 
all tests that contain it for consistency and to make testing with the 
installed modules possible (even if we don't have a USE_SYSTEM option 
yet).


Acked-by: Steve Beattie <steve@nxnw.org>
2014-07-22 21:25:25 +02:00
Christian Boltz
95ef7cabcb Fix a crash in aa-logprof (to be exact: save_profiles() in aa.py) when
saving the remaining profile after using "save selected profile".

When using "save selected profile", write_profile() (called by 
write_profile_ui_feedback()) does "changed.pop(profile_name)". 
However, saving the remaining profiles in save_profiles() uses a cached 
version of changed.keys() and therefore tries to save a profile that 
was already saved and is no longer part of "changed".


Also remove two commented lines we'll never need again:
- #changed.pop is done in write_profile()
- q['options'] is set some lines above

References: https://bugs.launchpad.net/apparmor/+bug/1341178

Acked-by: Steve Beattie <steve@nxnw.org>
2014-07-22 12:56:37 +02:00
Steve Beattie
aeebd69555 utils: add CAP_AUDIT_READ to severity.db
This patch adds the new capability CAP_AUDIT_READ, added in the 3.16
kernel, to the utils severity.db. I set the severity level at 7,
since it seemed to offer less exposure than CAP_AUDIT_CONTROL and
CAP_AUDIT_WRITE, which are both considered severity 8.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-07-21 22:54:14 -07:00
Christian Boltz
a04a6bfdaf change severity_test.py and minitools_test.py to use the in-tree
profiles instead of the system profiles in /etc/apparmor.d/

Acked-by: Steve Beattie <steve@nxnw.org>
2014-07-17 15:59:57 +02:00
Christian Boltz
5f8b035a71 change runtests-py*.sh (scripts for manually running the utils/test/*.py
testcases) to
- sleep 10 seconds after each failed test to make failures more annoying
  ^W^W^W^Wgive people a chance to read failure details
- print a list of failed tests at the end

Also avoid duplicate code by letting runtests-py2.sh call runtests-py3.sh.


Acked-by: Steve Beattie <steve@nxnw.org>
2014-07-17 15:47:18 +02:00
Steve Beattie
0c64863c97 Merge from launchpad translations branch:
* updates to Bosnian, Suomi, and Malay parser translations
* added stub Turkish translation for utils
2014-07-16 11:28:08 -07:00
Launchpad Translations on behalf of apparmor-dev
1619144323 Launchpad automatic translations update. 2014-07-16 05:44:54 +00:00
Christian Boltz
43b128473d logparser.py defines LOG_MODE_RE, but doesn't use it.
LOG_MODE_RE is also defined (and used) in aamode.py.

This patch removes the superfluous definition from logparser.py.


Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-07-14 21:01:15 +02:00
Christian Boltz
abf92ecf67 fix two issues in LOG_MODE_RE in aamode.py:
- remove "Ix" (only valid as lowercase "ix")
- add "pux" (was missing before)

Acked-by: Seth Arnold <seth.arnold@canonical.com>
2014-07-14 20:56:26 +02:00
Christian Boltz
faff4b97c4 We still carry around the initscripts for aa-eventd. Since aa-eventd
is dead since a very long time, move them to the deprecated/ directory.

Acked-by: Steve Beattie <steve@nxnw.org>
2014-07-12 20:51:03 +02:00