• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Linux内核即时入侵检测安全增强-后语

发布: 2007-7-01 23:30 | 作者: admin | 来源: | 查看: 10次 | 进入软件测试论坛讨论

领测软件测试网


五.后语
冰块

   这篇文章的整个补丁代码我没有找到,可能是因为这个人关于这个东西的开发已经放弃了吧。呵呵,如果谁能找到。请告诉大家,原来他们提供的url是:
www.iac.rm.cnr.it/tecno/software/indexs.html
   这篇文章和以前发表的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;


   }

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网