diff --git a/apparmor/ofono/ofonod-malicious-override.c b/apparmor/ofono/ofonod-malicious-override.c index 383284d84bb5353c1c5be7afa78b1d84b7b8e121..7088ee1fbe737d039dee5cc68fab72c1d837a5d4 100644 --- a/apparmor/ofono/ofonod-malicious-override.c +++ b/apparmor/ofono/ofonod-malicious-override.c @@ -1,11 +1,36 @@ -/* vim: set sts=4 sw=4 et : +/* vim:set et sw=2 cin cino=t0,f0,(0,{s,>2s,n-s,^-s,e2s: * * A small library that can be loaded using LD_PRELOAD to do malicious things * to test whether apparmor works */ -/* Easier for the build system */ -#include "../common/function-malicious-override.c" +#define _GNU_SOURCE +#include <dlfcn.h> +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include <glib.h> + +static void +do_malicious_stuff (void) +{ + const char *filename = "/etc/shadow"; + + if (fopen (filename, "r") == NULL) + { + fprintf (stderr, "Unable to be malicious: %s -- SUCCESS\n", + strerror(errno)); + } + else + { + fprintf (stderr, "Malicious code read contents of '%s' -- FAILURE\n", + filename); + /* Exit immediately if apparmor doesn't stop us. */ + exit (EXIT_FAILURE); + } +} gboolean g_option_context_parse (GOptionContext *context, diff --git a/apparmor/ofono/ofonod.malicious.expected b/apparmor/ofono/ofonod.malicious.expected index 63fd7c1f381d9e08cd7f23e7ba72d86f83e9a955..dc8cd9eb22a975df9728b7471b6c717103a12eca 100644 --- a/apparmor/ofono/ofonod.malicious.expected +++ b/apparmor/ofono/ofonod.malicious.expected @@ -3,5 +3,5 @@ profile:/usr/sbin/ofonod sdmode:REJECTING denied_mask:r operation:open -name:/home/user/.bash_history +name:/etc/shadow request_mask:r