拉萨信息网
健康
当前位置:首页 > 健康

Linux内核入侵检测安全增强实现(下) (3)

发布时间:2019-09-13 19:50:46 编辑:笔名

系统管理员(root用户)可以通过一些新的命令来管理访问控制数据库汇写到sys_setuid_aclm系统调用中,它叫做aclmng,它有以下的功能选项: -l 列出保存在内核区域的访问控制数据库的内容。 -L 从文件/etc/bop/acd中引导数据到访问控制数据库,大多数都用在启动时刻。 -w从文件/etc/bop/acd中写数据到访问控制数据库,大多数都用在系统关闭的时刻。 -h 显示功能信息;efault 如果没有选项,默认执行-l选项。 五.后语 这篇文章的整个补丁代码我没有找到,可能是因为这个人关于这个东西的开发已经放弃了吧。呵呵,如果谁能找到。这篇文章和以前发表的LIDS文章都是关于内核模块级的系统安全的。这篇主要是对缓冲区溢出的漏洞进行防范。虽然没有代码的原形,但是它给出的几个代码事例能够帮助我们更好的理解Linux的内核模块如何截获系统调用,或是如何对进程运行权分析的实现。对于我们理解Linux和其他操作系统的内核有一定的帮助。希望大家能通过这篇文章能多提高点理解认识,对以后自己开发系统安全软件能有一定理论上的帮助作用。下面是check_rootproc函数的代码: /*check_rootproc.c*/    int check_rootproc(struct inode *ino){    int cont=0,iproc=0,error=0;    suidp_t * suidproc;    efile_t f;    suidp_t p;    if ((IS_SETUID_TO_ROOT(current))||(IS_A_ROOT_DAEMON(current))) {    for (;cont    if ((permitted.lst[cont].efid.device==ino->i_dev&&    permitted.lst[cont].efid.inode==ino->i_ino)){    if ((permitted.lst[cont].efid.size==ino->i_size)&&    permitted.lst[cont].efid.modif==ino->i_mtime)){    suidproc=permitted.lst[cont].processes;    for(iproc=1;iproc<=permitted.lst[cont].proc_nr;iproc++){    if(!strcmp(suidproc->suidp_id.comm,current->comm)){    suidproc->suidp_id.count++;    return PSA;    }    if (iproc    suidproc=suidproc->next;    }    }    }else{    error=EFNA;    goto file_exe_unauthorized;    }    }    }    error=EXENA;/*EXE is not in the database*/    goto file_exe_unauthorized;    }    return PNS;/*the process is not setuid to root or root daemon*/    file_exe_unauthorized:    f.efid.device=ino->i_dev;    f.efid.inode=ino->i_ino;    f.efid.size=ino->i_size;    f.efid.modif=ino->i_mtime;    strncpy(p.suidp_id.comm,current->comm,    sizeof(p.suidp_id.comm));    p.suidp_id.count=1;    do{    while(writer_pid!=0){    cli();/*interrupt disabled*/    if (writer_pid!=0)    interruptible_sleep_on(&pid_queue);    sti();    }    }    while(!atomic_access(&writer_pid,current->pid));    /*start of critical section*/    do_setuid_put(&(f.efid),&(p.suidp_id),FAILURE);    writer_pid=0;/*end of critical section*/    atomic_access(&writer_pid,0);/*release of the lock*/    return error;    }

小孩不消化发热怎么办
孩子拉肚子的原因
怎么治糖尿病胃轻瘫腹胀好
小孩感冒发烧怎么办