kproc_hide.c File Reference

#include <linux/config.h>
#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


Function Documentation

void cleanup_module void   ) 
 

Definition at line 111 of file kproc_hide.c.

References handle, rsbac_printk(), and rsbac_reg_unregister().

00112 {
00113         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Unregistering.\n");
00114         
00115         if(rsbac_reg_unregister(handle))
00116         {
00117                 rsbac_printk(KERN_ERR "RSBAC REG decision module kproc_hide: Unregistering failed - beware of possible system failure!\n");
00118         }
00119         
00120         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Unloaded.\n");
00121 }

int init_module void   ) 
 

Definition at line 83 of file kproc_hide.c.

References handle, request_func(), rsbac_printk(), rsbac_reg_register(), RSBAC_REG_VERSION, and TRUE.

00084 {
00085         struct rsbac_reg_entry_t entry;
00086 
00087         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Initializing.\n");
00088 
00089         /* clearing registration entries */
00090         memset(&entry, 0, sizeof(entry));
00091 
00092         strcpy(entry.name, "RSBAC REG kproc_hide ADF module");
00093         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: REG Version: %u, Name: %s, Handle: %li\n",
00094                                                                 RSBAC_REG_VERSION, entry.name, handle);
00095 
00096         entry.handle = handle;
00097         entry.request_func = request_func;
00098         entry.switch_on = TRUE;
00099         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Registering to ADF.\n");
00100         
00101         if(rsbac_reg_register(RSBAC_REG_VERSION, entry) < 0) {
00102                 rsbac_printk(KERN_WARNING "RSBAC REG decision module sample 1: Registering failed. Unloading.\n");
00103                 return -ENOEXEC;
00104         }
00105 
00106         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Loaded.\n");
00107 
00108         return 0;
00109 }

int is_kproc int  pid  ) 
 

Definition at line 37 of file kproc_hide.c.

References NULL.

Referenced by request_func().

00038 {
00039         struct task_struct *tid_task;
00040 
00041         tid_task = find_task_by_pid(pid);
00042 
00043         if (tid_task->mm == NULL)
00044                 return 1;
00045         else
00046                 return 0;
00047 }

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 51 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().

00058 {  
00059 
00060         switch (request) {
00061                 case R_GET_STATUS_DATA:
00062                         switch (target) {
00063                                 case T_PROCESS:
00064                                         if (is_kproc(tid.process))
00065                                         return NOT_GRANTED;
00066                                 default:
00067                                         return DO_NOT_CARE;
00068                         }
00069                 default:
00070                         return DO_NOT_CARE;
00071         }
00072         
00073 /*
00074         if (request == R_GET_STATUS_DATA && target == T_PROCESS && is_kproc(tid.process))
00075                 return NOT_GRANTED;
00076         else
00077                 return GRANTED;
00078 */
00079 }


Variable Documentation

long handle = 9999992 [static]
 

Definition at line 27 of file kproc_hide.c.

Referenced by cleanup_module(), init_module(), and set_attr_dev().


Generated on Sun May 21 14:31:03 2006 for RSBAC by  doxygen 1.4.2