Re: [PATCH ghak124 v3] audit: log nftables configuration change events

From: Steve Grubb
Date: Thu Jun 04 2020 - 14:52:17 EST


On Thursday, June 4, 2020 1:57:56 PM EDT Richard Guy Briggs wrote:
> > > diff --git a/kernel/auditsc.c b/kernel/auditsc.c
> > > index 468a23390457..3a9100e95fda 100644
> > > --- a/kernel/auditsc.c
> > > +++ b/kernel/auditsc.c
> > > @@ -75,6 +75,7 @@
> > > #include <linux/uaccess.h>
> > > #include <linux/fsnotify_backend.h>
> > > #include <uapi/linux/limits.h>
> > > +#include <uapi/linux/netfilter/nf_tables.h>
> > >
> > > #include "audit.h"
> > >
> > > @@ -136,9 +137,26 @@ struct audit_nfcfgop_tab {
> > > };
> > >
> > > static const struct audit_nfcfgop_tab audit_nfcfgs[] = {
> > > - { AUDIT_XT_OP_REGISTER, "register" },
> > > - { AUDIT_XT_OP_REPLACE, "replace" },
> > > - { AUDIT_XT_OP_UNREGISTER, "unregister" },
> > > + { AUDIT_XT_OP_REGISTER, "xt_register"
> >
> > },
> >
> > > + { AUDIT_XT_OP_REPLACE, "xt_replace"
> > > }, + { AUDIT_XT_OP_UNREGISTER, "xt_unregister"
> > > }, + { AUDIT_NFT_OP_TABLE_REGISTER,
> > > "nft_register_table">
> > },
> >
> > > + { AUDIT_NFT_OP_TABLE_UNREGISTER, "nft_unregister_table"
> > > }, + { AUDIT_NFT_OP_CHAIN_REGISTER,
> > > "nft_register_chain">
> > },
> >
> > > + { AUDIT_NFT_OP_CHAIN_UNREGISTER, "nft_unregister_chain"
> > > }, + { AUDIT_NFT_OP_RULE_REGISTER,
> > > "nft_register_rule">
> > },
> >
> > > + { AUDIT_NFT_OP_RULE_UNREGISTER, "nft_unregister_rule"
> >
> > },
> >
> > > + { AUDIT_NFT_OP_SET_REGISTER, "nft_register_set"
> >
> > },
> >
> > > + { AUDIT_NFT_OP_SET_UNREGISTER, "nft_unregister_set"
> >
> > },
> >
> > > + { AUDIT_NFT_OP_SETELEM_REGISTER, "nft_register_setelem"
> > > }, + { AUDIT_NFT_OP_SETELEM_UNREGISTER,
> > > "nft_unregister_setelem" }, + { AUDIT_NFT_OP_GEN_REGISTER,
> > > "nft_register_gen" }, + {
> > > AUDIT_NFT_OP_OBJ_REGISTER, "nft_register_obj" }, +
> > > { AUDIT_NFT_OP_OBJ_UNREGISTER, "nft_unregister_obj"
> > > }, + { AUDIT_NFT_OP_OBJ_RESET, "nft_reset_obj"
> > > }, + { AUDIT_NFT_OP_FLOWTABLE_REGISTER,
> > > "nft_register_flowtable" }, + {
> > > AUDIT_NFT_OP_FLOWTABLE_UNREGISTER, "nft_unregister_flowtable" }, +
> > > { AUDIT_NFT_OP_INVALID, "nft_invalid"
> >
> > },
> >
> > > };
> >
> > I still don't like the event format because it doesn't give complete
> > subject information. However, I thought I'd comment on this string
> > table. Usually it's sufficient to log the number and then have the
> > string table in user space which looks it up during interpretation.
>
> That is a good idea that would help reduce kernel cycles and netlink
> bandwidth, but the format was set in 2011 so it is a bit late to change
> that now:
> fbabf31e4d48 ("netfilter: create audit records for x_tables
> replaces")

Nothing searches/interprets that field name. So, you can redefine it by
renaming it. Or just go with what you have. My preference is push that to
user space. But not a showstopper "as is".

-Steve