一种基于Linux系统的主动防御方法及装置制造方法及图纸

技术编号:10362978 阅读:165 留言:0更新日期:2014-08-27 19:01
本发明专利技术公开了一种基于Linux系统的主动防御方法及装置,属于系统安全领域。所述方法包括:采用钩子Hook监测Linux内核的系统调用;当监测到设置了Hook的系统调用被用户态进程调用时,判断所述用户态进程是否存在于白名单中;当所述用户态进程存在于所述白名单中时,允许所述用户态进程调用所述系统调用;当所述用户态进程不存在于所述白名单中时,禁止所述用户态进程调用所述系统调用;其中,所述白名单包括一个或多个允许执行系统调用的用户态进程。可以对Linux系统运行的程序等进行有效检测,对于Linux运行的恶意程序,后门木马程序等进行及时拦截,是一种Linux下的有效的主动防御方法。

【技术实现步骤摘要】
—种基于Linux系统的主动防御方法及装置
本专利技术涉及计算机领域,特别涉及一种基于Linux系统的主动防御方法及装置。
技术介绍
Linux是一种自由和开放源代码的类UNIX操作系统,是一个基于多用户、多任务、支持多线程和多中央处理器(Central Processing Unit,简称“CPU”)的操作系统。随着Linux系统被越来越多的企业作为服务器使用,相关攻击事件、入侵事件、木马程序随着逐渐增多。在计算机安全领域,主动防御技术是一种为计算机数据提供实时防护的主机安全技术,而目前Linux系统的主动防御技术发展缓慢,对于Linux系统运行的恶意程序,后门木马程序等无法有效及时拦截,目前主流的主动防御系统基本都是在Windows平台下实现的,Linux下没有有效的主动防御方法。
技术实现思路
为了解决现有中技术Linux下没有有效的主动防御系统和方法的问题,本专利技术实施例提供了一种基于Linux系统的主动防御方法及装置。所述技术方案如下:—方面,本专利技术实施例提供了一种基于Linux系统的主动防御方法,适用于Linux主机,所述方法包括:采用钩子Hook监测Linux内核的系统调用;当监测到设置了所述Hook的系统调用被用户态进程调用时,判断所述用户态进程是否存在于白名单中;当所述用户态进程存在于所述白名单中时,允许所述用户态进程调用所述系统调用;当所述用户态进程不存在于所述白名单中时,禁止所述用户态进程调用所述系统调用;所述白名单包括一个或多个允许执行系统调用的用户态进程。在本专利技术实施例的一种实现方式中,所述系统调用包括:系统加载内核模块、系统进程运行、系统重要配置文件的修改、系统执行的命令、系统端口监听调用和系统注入调用。在本专利技术实施例的另一种实现方式中,所述采用钩子Hook监测Linux内核的系统调用,包括:获取当前Linux系统调用链表指针;获取调用链表sys_call_table指针;判断所述当前Linux系统调用链表指针与所述调用链表sys_call_table指针是否相等;当所述当前Linux系统调用链表指针与所述调用链表sys_call_table指针相等时,监测所述Linux内核的系统调用。在本专利技术实施例的另一种实现方式中,所述方法还包括:获取防御策略,所述防御策略包括Hook策略和所述白名单;根据所述防御策略对所述Linux内核的系统调用设置Hook。在本专利技术实施例的另一种实现方式中,所述获取防御策略,包括:接收服务器下发的所述防御策略。另一方面,本专利技术实施例还提供了一种基于Linux系统的主动防御装置,所述装置包括:监测模块,用于采用钩子Hook监测Linux内核的系统调用;判断模块,用于当监测到设置了所述Hook的系统调用被用户态进程调用时,判断所述用户态进程是否存在于白名单中;处理模块,用于当所述用户态进程存在于所述白名单中时,允许所述用户态进程调用所述系统调用;当所述用户态进程不存在于所述白名单中时,禁止所述用户态进程调用所述系统调用;所述白名单包括一个或多个允许执行系统调用的用户态进程。在本专利技术实施例的一种实现方式中,所述系统调用包括:系统加载内核模块、系统进程运行、系统重要配置文件的修改、系统执行的命令、系统端口监听调用和系统注入调用。在本专利技术实施例的另一种实现方式中,所述监测模块包括:第一获取单元,用于获取当前Linux系统调用链表指针;第一获取单元,用于获取调用链表sys_call_table指针;判断单元,用于判断所述当前Linux系统调用链表指针与所述调用链表sys_call_table指针是否相等;执行单元,用于当所述当前Linux系统调用链表指针与所述调用链表sys_call_table指针相等时,监测所述Linux内核的系统调用。在本专利技术实施例的另一种实现方式中,所述装置还包括:获取模块,用于获取防御策略,所述防御策略包括Hook策略和所述白名单;执行模块,用于根据所述防御策略对所述Linux内核的系统调用设置Hook。在本专利技术实施例的另一种实现方式中,获取模块包括:传输单元,用于接收服务器下发的所述防御策略。本专利技术实施例提供的技术方案带来的有益效果是:通过采用钩子Hook监测Linux内核的系统调用,当监测到设置了 Hook的系统调用被用户态进程调用时,判断用户态进程是否存在于白名单中,当用户态进程存在于白名单中时,允许用户态进程调用系统调用,当用户态进程不存在于白名单中时,禁止用户态进程调用系统调用,可以对Linux系统运行的程序等进行有效检测,对于Linux运行的恶意程序,后门木马程序等进行及时拦截,是一种基于Linux系统的有效的主动防御方法。【附图说明】为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的应用场景图;图2是本专利技术实施例一提供的基于Linux系统的主动防御方法的方法流程图;图3是本专利技术实施例二提供的基于Linux系统的主动防御方法的方法流程图;图4是本专利技术实施例三提供的基于Linux系统的主动防御装置的结构示意图;图5是本专利技术实施例四提供的基于Linux系统的主动防御装置的结构示意图。【具体实施方式】为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。为了便于实施例的描述,下面先简单介绍一下本专利技术中实施例的应用场景。参见图1,多台Linux主机Al与Linux服务器A2连接,这些Linux主机Al可以安装不同发行版的Linux系统,例如centos和ubuntu等。每个Linux主机Al中都存在用户态进程(Ysec_agent) Cl和内核态进程(Ysec_kagent) C2, Linux服务器A2与用户态进程Cl连接,并通过用户态进程Cl向Linux主机Al发送防御策略,用户态进程Cl将接收到的防御策略发送给内核态进程C2,用户态进程Cl通过Netlink同内核态进程C2通信,Netlink是一种套接字,是用以实现用户态进程Cl与内核态进程C2通信的一种特殊的进程间通信的常用接口。当然,这里设置一台Linux服务器A2与多台Linux主机Al连接的目的在于,实现在服务器端对主机防御策略的统一设置,方便管理。在主机较少的场合亦可以直接在主机上设置防御策略。本专利技术实施例中的基于Linux系统的主动防御装置设置在上述Linux主机Al上。需要说明的是,以上所述的设备种类、连接关系和连接方式仅为举例,本专利技术对此不作限制。实施例一本专利技术实施例提供了一种基于Linux系统的主动防御方法,适用于Linux主机,Linux系统包括用户态进程和内核态进程,参见图2,该方法包括:步骤101:采用钩子Hook监测Linux内核的系统调用。步骤102:当监测到设置了 Hook的系统调用被用户态进程调用时,判断用户态进程是否存在于白名单中。步骤103:当用户态进程存在于白名单中时,允许用户态进程调用系统调用;当用户态进程不存在于白名单中时,禁止用户态进程调用系统调用。其中,白名单包括一个或本文档来自技高网...

【技术保护点】
一种基于Linux系统的主动防御方法,适用于Linux主机,其特征在于,所述方法包括:采用钩子Hook监测Linux内核的系统调用;当监测到设置了所述Hook的系统调用被用户态进程调用时,判断所述用户态进程是否存在于白名单中;当所述用户态进程存在于所述白名单中时,允许所述用户态进程调用所述系统调用;当所述用户态进程不存在于所述白名单中时,禁止所述用户态进程调用所述系统调用;所述白名单包括一个或多个允许执行系统调用的用户态进程。

【技术特征摘要】
1.一种基于Linux系统的主动防御方法,适用于Linux主机,其特征在于,所述方法包括: 采用钩子Hook监测Linux内核的系统调用; 当监测到设置了所述Hook的系统调用被用户态进程调用时,判断所述用户态进程是否存在于白名单中; 当所述用户态进程存在于所述白名单中时,允许所述用户态进程调用所述系统调用; 当所述用户态进程不存在于所述白名单中时,禁止所述用户态进程调用所述系统调用; 所述白名单包括一个或多个允许执行系统调用的用户态进程。2.根据权利要求1所述的方法,其特征在于,所述系统调用包括: 系统加载内核模块、系统进程运行、系统重要配置文件的修改、系统执行的命令、系统端口监听调用和系统注入调用。3.根据权利要求1所述的方法,其特征在于,所述采用钩子Hook监测Linux内核的系统调用,包括: 获取当前Linux系统调用链表指针;获取调用链表sys_call_table指针; 判断所述当前Linux系统调用链表指针与所述调用链表sys_call_table指针是否相等; 当所述当前Linux系统调用链表指针与所述调用链表sys_call_table指针相等时,监测所述Linux内核的系统调用。4.根据权利要求1~3任一项所述的方法,其特征在于,所述方法还包括: 获取防御策略,所述防御策略包括Hook策略和所述白名单; 根据所述防御策略对所述Linux内核的系统调用设置Hook。5.根据权利要求4所述的方法,其特征在于,所述获取防御策略,包括: 接收服务器下发的所述防御策略。6.一种基于Linux系统的主动防御装置...

【专利技术属性】
技术研发人员:韩方张涛
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1