# nice-lad ## Introduction Narcissistic, Incredible, Completely Exceptional Logger of Access Denials ### Project goals Nice-lad is a tool to collect and aggregate logs of access denials in system. The source of data are audit messages from DAC, Smack, Cynara and netfilter. The purpose of nice-lad is to collect and normalize the selected audit logs and make them readable by unprivileged user. This might be helpful during debugging applications accessing restricted resources. Nice-lad works as an [audispd][1] plugin. [1]: http://linux.die.net/man/8/audispd "audispd" ### Project history Nice-lad was first introduced in July 2015. ### Contact information | Name | E-mail | Function | |-----------------|-------------------------|-----------------------| | Aleksander Zdyb | [a.zdyb@samsung.com][2] | Developer, Maintainer | [2]: mailto:a.zdyb@samsung.com "Aleksander Zdyb" ### Sources The equivalent places, nice-lad can be obtained from: * [Tizen](https://review.tizen.org/gerrit/gitweb?p=platform/core/security/nice-lad.git) * [GitHub](https://github.com/Samsung/nice-lad) ## Features Nice-lad, as an audisp plugin, is fed with audit events. It parses and filters them to obtain and aggregate information useful in context of logging of access denials. At the moment, the supported subsystems are: * DAC denials on given groups, * Smack denials, * [Cynara][3] denials, * Netfilter denials (supported by [Nether][4]). [3]: https://github.com/Samsung/cynara "Cynara" [4]: https://github.com/Samsung/nether "Nether" ### Implanted standards Nice-lad uses: * libauparse to parse audit events, * [Security Manager][5] (where available) to obtain resource groups to monitor, * journald (where available) or syslog to put aggregated logs. [5]: https://github.com/Samsung/security-manager "Security Manager" ## Running and configuration Please refer to INSTALL.md file for installation and configuration guide. ### Reading the logs Nice-lad will log access denials to journald (if available) or syslog with informational level. Below, are some examples: ``` Jul 10 10:11:04 HOSTNAME nice-lad: ACCESS DENIED ON SYSCALL syscall=open filename=/tmp/test exit=-13(Permission denied) gid=unknown(1234) object=test subject=_ Jul 10 10:11:09 HOSTNAME nice-lad: ACCESS DENIED ON SMACK object="test" subject="_" access=r Jul 10 10:11:26 HOSTNAME nice-lad: ACCESS DENIED ON CYNARA client="test_client" user="test_user" privilege="http://tizen.org/privilege/account.read" Jul 10 10:11:51 HOSTNAME nice-lad: ACCESS DENIED ON NETFILTER obj=User outif=eth0 proto=tcp saddr=10.0.2.16 sport=54460 daddr=198.145.20.7 dport=443 ``` ### Testing Nice-lad comes with a set of unit tests written in [gmock][6]. By adding new features or fixing bugs, please add or update tests. [6]: http://gmock.org/ "Gmock" ## Usage Nice-lad is automatically started by audispd service. To disable auto-starting by audispd service, change "active" to "no" in nice-lad.conf file in audisp plugins directory: "/etc/audisp/plugins.d/nice_lad.conf"[^1]. To change collector (backend) log level, set "arg = -l LOG_LEVEL". Possible log levels are defined in [syslog(3)][7]. Default collector log level is LOG_INFO. Nice-lad can be manually started with -h/--help parameter to print help message. If ran with invalid parameter, it will be terminated and error will be logged to journald or syslog[^2]. [^1]: Paths are distribution-specific and resolved at building time. [^2]: Depends on backend resolved at building time. [7]: http://linux.die.net/man/3/syslog "syslog(3)"