Re: [PATCH 3/8] audit: Implement audit_log_tty()

From: Paul Moore
Date: Tue May 29 2018 - 17:07:33 EST


On Thu, May 24, 2018 at 4:11 PM, Stefan Berger
<stefanb@xxxxxxxxxxxxxxxxxx> wrote:
> Implement audit_log_tty() so that IMA can add tty= to its audit records.
>
> Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxxxxxxxxxx>
> ---
> include/linux/audit.h | 5 +++++
> kernel/audit.c | 8 ++++++++
> 2 files changed, 13 insertions(+)
>
> diff --git a/include/linux/audit.h b/include/linux/audit.h
> index 90aa63ddc9be..2deb76c74d10 100644
> --- a/include/linux/audit.h
> +++ b/include/linux/audit.h
> @@ -154,6 +154,7 @@ extern void audit_log_task_info(struct audit_buffer *ab,
> struct task_struct *tsk);
>
> extern int audit_update_lsm_rules(void);
> +extern void audit_log_tty(struct audit_buffer *ab, struct task_struct *tsk);
>
> /* Private API (for audit.c only) */
> extern int audit_rule_change(int type, int seq, void *data, size_t datasz);
> @@ -202,6 +203,10 @@ static inline int audit_log_task_context(struct audit_buffer *ab)
> static inline void audit_log_task_info(struct audit_buffer *ab,
> struct task_struct *tsk)
> { }
> +
> +static inline void audit_log_tty(struct audit_buffer *ab,
> + struct task_struct *tsk)
> +{ }
> #define audit_enabled 0
> #endif /* CONFIG_AUDIT */
>
> diff --git a/kernel/audit.c b/kernel/audit.c
> index 670665c6e2a6..fa54695962b4 100644
> --- a/kernel/audit.c
> +++ b/kernel/audit.c
> @@ -2305,6 +2305,14 @@ void audit_log_task_info(struct audit_buffer *ab, struct task_struct *tsk)
> }
> EXPORT_SYMBOL(audit_log_task_info);
>
> +void audit_log_tty(struct audit_buffer *ab, struct task_struct *tsk)
> +{
> + struct tty_struct *tty = audit_get_tty(tsk);
> +
> + audit_log_format(ab, " tty=%s", tty ? tty_name(tty) : "(none)");
> + audit_put_tty(tty);
> +}

Perhaps I missed it, but your IMA patches only ever call this to log
current's tty, yes? If so, I would prefer if we dropped the
task_struct argument and always had audit_log_tty() use current.

--
paul moore
www.paul-moore.com