#include <linux/module.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/fs.h>
#include <linux/sched.h>
#include <linux/file.h>
#include <rsbac/types.h>
#include <rsbac/reg.h>
#include <rsbac/adf.h>
#include <rsbac/aci.h>
#include <rsbac/getname.h>
#include <rsbac/error.h>
#include <rsbac/proc_fs.h>
Go to the source code of this file.
Functions | |
MODULE_AUTHOR ("Michal Purzynski") | |
MODULE_DESCRIPTION ("RSBAC REG kproc_hide decision module") | |
MODULE_LICENSE ("GPL") | |
int | is_kproc (int pid) |
static int | request_func (enum rsbac_adf_request_t request, rsbac_pid_t owner_pid, enum rsbac_target_t target, union rsbac_target_id_t tid, enum rsbac_attribute_t attr, union rsbac_attribute_value_t attr_val, rsbac_uid_t owner) |
int | init_module (void) |
void | cleanup_module (void) |
Variables | |
static long | handle = 9999992 |
void cleanup_module | ( | void | ) |
Definition at line 110 of file kproc_hide.c.
References handle, rsbac_printk(), and rsbac_reg_unregister().
00111 { 00112 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Unregistering.\n"); 00113 00114 if(rsbac_reg_unregister(handle)) 00115 { 00116 rsbac_printk(KERN_ERR "RSBAC REG decision module kproc_hide: Unregistering failed - beware of possible system failure!\n"); 00117 } 00118 00119 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Unloaded.\n"); 00120 }
int init_module | ( | void | ) |
Definition at line 82 of file kproc_hide.c.
References handle, request_func(), rsbac_printk(), rsbac_reg_register(), RSBAC_REG_VERSION, and TRUE.
00083 { 00084 struct rsbac_reg_entry_t entry; 00085 00086 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Initializing.\n"); 00087 00088 /* clearing registration entries */ 00089 memset(&entry, 0, sizeof(entry)); 00090 00091 strcpy(entry.name, "RSBAC REG kproc_hide ADF module"); 00092 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: REG Version: %u, Name: %s, Handle: %li\n", 00093 RSBAC_REG_VERSION, entry.name, handle); 00094 00095 entry.handle = handle; 00096 entry.request_func = request_func; 00097 entry.switch_on = TRUE; 00098 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Registering to ADF.\n"); 00099 00100 if(rsbac_reg_register(RSBAC_REG_VERSION, entry) < 0) { 00101 rsbac_printk(KERN_WARNING "RSBAC REG decision module sample 1: Registering failed. Unloading.\n"); 00102 return -ENOEXEC; 00103 } 00104 00105 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Loaded.\n"); 00106 00107 return 0; 00108 }
int is_kproc | ( | int | pid | ) |
Definition at line 36 of file kproc_hide.c.
References NULL.
Referenced by request_func().
00037 { 00038 struct task_struct *tid_task; 00039 00040 tid_task = find_task_by_pid(pid); 00041 00042 if (tid_task->mm == NULL) 00043 return 1; 00044 else 00045 return 0; 00046 }
MODULE_AUTHOR | ( | "Michal Purzynski" | ) |
MODULE_DESCRIPTION | ( | "RSBAC REG kproc_hide decision module" | ) |
MODULE_LICENSE | ( | "GPL" | ) |
static int request_func | ( | enum rsbac_adf_request_t | request, | |
rsbac_pid_t | owner_pid, | |||
enum rsbac_target_t | target, | |||
union rsbac_target_id_t | tid, | |||
enum rsbac_attribute_t | attr, | |||
union rsbac_attribute_value_t | attr_val, | |||
rsbac_uid_t | owner | |||
) | [static] |
Definition at line 50 of file kproc_hide.c.
References DO_NOT_CARE, is_kproc(), NOT_GRANTED, rsbac_target_id_t::process, R_GET_STATUS_DATA, and T_PROCESS.
Referenced by init_module().
00057 { 00058 00059 switch (request) { 00060 case R_GET_STATUS_DATA: 00061 switch (target) { 00062 case T_PROCESS: 00063 if (is_kproc(tid.process)) 00064 return NOT_GRANTED; 00065 default: 00066 return DO_NOT_CARE; 00067 } 00068 default: 00069 return DO_NOT_CARE; 00070 } 00071 00072 /* 00073 if (request == R_GET_STATUS_DATA && target == T_PROCESS && is_kproc(tid.process)) 00074 return NOT_GRANTED; 00075 else 00076 return GRANTED; 00077 */ 00078 }
long handle = 9999992 [static] |
Definition at line 26 of file kproc_hide.c.
Referenced by cleanup_module(), init_module(), lookup_lol_reg(), lookup_reg(), remove_lol_reg(), remove_reg(), rsbac_acl_get_tlist(), and set_attr_dev().