~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/lsm_audit.h

Version: ~ [ linux-5.8-rc4 ] ~ [ linux-5.7.7 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.50 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.131 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.187 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.229 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.229 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.85 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Common LSM logging functions
  3  * Heavily borrowed from selinux/avc.h
  4  *
  5  * Author : Etienne BASSET  <etienne.basset@ensta.org>
  6  *
  7  * All credits to : Stephen Smalley, <sds@epoch.ncsc.mil>
  8  * All BUGS to : Etienne BASSET  <etienne.basset@ensta.org>
  9  */
 10 #ifndef _LSM_COMMON_LOGGING_
 11 #define _LSM_COMMON_LOGGING_
 12 
 13 #include <linux/stddef.h>
 14 #include <linux/errno.h>
 15 #include <linux/kernel.h>
 16 #include <linux/kdev_t.h>
 17 #include <linux/spinlock.h>
 18 #include <linux/init.h>
 19 #include <linux/audit.h>
 20 #include <linux/in6.h>
 21 #include <linux/path.h>
 22 #include <linux/key.h>
 23 #include <linux/skbuff.h>
 24 
 25 struct lsm_network_audit {
 26         int netif;
 27         struct sock *sk;
 28         u16 family;
 29         __be16 dport;
 30         __be16 sport;
 31         union {
 32                 struct {
 33                         __be32 daddr;
 34                         __be32 saddr;
 35                 } v4;
 36                 struct {
 37                         struct in6_addr daddr;
 38                         struct in6_addr saddr;
 39                 } v6;
 40         } fam;
 41 };
 42 
 43 struct lsm_ioctlop_audit {
 44         struct path path;
 45         u16 cmd;
 46 };
 47 
 48 /* Auxiliary data to use in generating the audit record. */
 49 struct common_audit_data {
 50         char type;
 51 #define LSM_AUDIT_DATA_PATH     1
 52 #define LSM_AUDIT_DATA_NET      2
 53 #define LSM_AUDIT_DATA_CAP      3
 54 #define LSM_AUDIT_DATA_IPC      4
 55 #define LSM_AUDIT_DATA_TASK     5
 56 #define LSM_AUDIT_DATA_KEY      6
 57 #define LSM_AUDIT_DATA_NONE     7
 58 #define LSM_AUDIT_DATA_KMOD     8
 59 #define LSM_AUDIT_DATA_INODE    9
 60 #define LSM_AUDIT_DATA_DENTRY   10
 61 #define LSM_AUDIT_DATA_IOCTL_OP 11
 62         union   {
 63                 struct path path;
 64                 struct dentry *dentry;
 65                 struct inode *inode;
 66                 struct lsm_network_audit *net;
 67                 int cap;
 68                 int ipc_id;
 69                 struct task_struct *tsk;
 70 #ifdef CONFIG_KEYS
 71                 struct {
 72                         key_serial_t key;
 73                         char *key_desc;
 74                 } key_struct;
 75 #endif
 76                 char *kmod_name;
 77                 struct lsm_ioctlop_audit *op;
 78         } u;
 79         /* this union contains LSM specific data */
 80         union {
 81 #ifdef CONFIG_SECURITY_SMACK
 82                 struct smack_audit_data *smack_audit_data;
 83 #endif
 84 #ifdef CONFIG_SECURITY_SELINUX
 85                 struct selinux_audit_data *selinux_audit_data;
 86 #endif
 87 #ifdef CONFIG_SECURITY_APPARMOR
 88                 struct apparmor_audit_data *apparmor_audit_data;
 89 #endif
 90         }; /* per LSM data pointer union */
 91 };
 92 
 93 #define v4info fam.v4
 94 #define v6info fam.v6
 95 
 96 int ipv4_skb_to_auditdata(struct sk_buff *skb,
 97                 struct common_audit_data *ad, u8 *proto);
 98 
 99 int ipv6_skb_to_auditdata(struct sk_buff *skb,
100                 struct common_audit_data *ad, u8 *proto);
101 
102 void common_lsm_audit(struct common_audit_data *a,
103         void (*pre_audit)(struct audit_buffer *, void *),
104         void (*post_audit)(struct audit_buffer *, void *));
105 
106 #endif
107 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp