一种基于Linux白名单程序控制系统及方法与流程

    专利2022-07-08  99


    本发明涉及互联网信息处理技术领域,具体涉及一种基于linux白名单程序控制系统及方法。



    背景技术:

    近年来计算机技术日趋成熟,其应用涉及到我们日常生活和工作方方面面,因此计算机信息安全也越来越受到人们的重视。计算机系统安全防护技术有很多,白名单防护技术是应用最为普遍的技术之一。

    该技术一方面可以有效抵御恶意软件和有针对性的攻击,阻止未知程序、文件运行,否定其权限。另一方面,白名单可以提高用户工作效率,并保持系统以最佳性能运作。对于正在运行的应用、工具和进程方面,白名单可以提供对系统的全面可视性。

    白名单可以帮助抵御高级内存注入攻击;该技术提供了功能来验证内存中运行的所有经批准的进程,并确保这些进程在运行时没有被修改,从而抵御高级内存漏洞利用。



    技术实现要素:

    针对现有技术中的上述不足,本发明提供的一种基于linux白名单程序控制系统及方法解决了linux系统中prelink的预链接机制在加载共享库时,某些可执行程序和文件哈希值被修改的问题。

    为了达到上述发明目的,本发明采用的技术方案为:一种基于linux白名单程序控制系统,包括:软件应用层、系统安全内核和数据库;

    所述软件应用层用于扫描控制系统中的可执行程序和动态库文件,并将可执行程序和动态库文件的原始哈希值录入数据库;

    所述数据库用于存储原始哈希值;

    所述系统安全内核用于捕获控制系统中可执行程序和动态库文件的执行或加载操作,计算捕捉过程中可执行程序和动态库文件的哈希值,将捕捉过程中可执行程序和动态库文件的哈希值与白名单策略库中的原始哈希值和当前哈希值进行对比,阻止非授权或不符合预期的可执行程序和动态库文件执行,完成基于linux白名单程序的控制。

    一种基于linux白名单程序控制系统的控制方法,包括以下步骤:

    s1、在控制系统中安装客户端,并在客户端与服务端的控制中心成功建立连接后,通过控制中心下发开启客户端白名单控制指令;

    s2、在客户端收到开启客户端白名单控制指令后,建立白名单策略库;

    s3、通过软件应用层,监控prelink预链接的优化行为和日志分析结果,实时获取经prelink预链接优化后的动态库文件和可执行程序;

    s4、计算优化后的动态库文件和可执行程序的哈希值,记为优化哈希值,并将优化哈希值录入数据库,作为优化后的动态库文件和可执行程序的当前哈希值;

    s5、通过系统安全内核捕获控制系统中可执行程序和动态库文件的执行或加载操作,计算进行执行或加载操作的可执行程序和动态库文件的哈希值,记为捕获哈希值;

    s6、判断捕获哈希值与白名单策略库中同文件的可执行程序和动态库文件的原始哈希值或当前哈希值是否相等,若是,则允许可执行程序和动态库文件的执行或加载操作,完成基于linux白名单程序的控制,若否,则拒绝可执行程序和动态库文件的执行或加载操作,完成基于linux白名单程序的控制。

    进一步地:所述步骤s2具体为:

    s21、在客户端收到开启客户端白名单控制指令后,调用prelink预链接撤销功能,还原经prelink预链接优化后的动态库文件和可执行程序,得到原动态库文件和原可执行程序;

    s22、经客户端撤销prelink预链接后,通过软件应用层对原可执行程序和原动态库文件进行自动扫描,将扫描过程中对应的原始哈希值录入数据库中,建立白名单策略库。

    综上,本发明的有益效果为:

    1、用户或企业可以根据自身实际需求,自定义设定白名单控制策略,从而实现终端到服务端,“监控-防御-告警-审计-溯源”一体化机制。

    2、本发明通过系统全盘扫描获取可执行程序和文件的哈希值并记录,建立白名单策略库,实现对系统的全面主动防御,集监控、防御、告警于一身,部署灵活,使用简便。

    3、本发明在白名单策略库建立、扫描系统前,调用prelink的预链接撤销功能,避免文件、可执行程序的hash被修改,还原相关动态库文件和可执行程序。

    4、当经prelink优化后的动态库文件加载时,安全内核截获加载请求后,将截获的程序哈希值与策略库中的原始值和当前值进行对比,只要有一个符合,即允许执行;也兼顾保留了prelink预链接的优势。

    附图说明

    图1为一种基于linux白名单程序控制系统的控制方法的流程图。

    具体实施方式

    下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

    一种基于linux白名单程序控制系统,采用传统的c/s模式,在系统终端安装客户端并与部署在远程服务器的控制中心建立长连接心跳,由控制中心向客户端下发策略开启用户终端系统的白名单控制执行功能。

    一种基于linux白名单程序控制系统包括:软件应用层、系统安全内核和数据库;

    所述软件应用层用于扫描控制系统中的可执行程序和动态库文件,并将可执行程序和动态库文件的原始哈希值录入数据库;

    所述数据库用于存储原始哈希值;

    所述系统安全内核用于捕获控制系统中可执行程序和动态库文件的执行或加载操作,计算捕捉过程中可执行程序和动态库文件的哈希值,将捕捉过程中可执行程序和动态库文件的哈希值与白名单策略库中的原始哈希值和当前哈希值进行对比,阻止非授权或不符合预期的可执行程序和动态库文件执行,完成基于linux白名单程序的控制。

    如图1所示,一种基于linux白名单程序控制系统的控制方法,包括以下步骤:

    s1、在控制系统中安装客户端,并在客户端与服务端的控制中心成功建立连接后,通过控制中心下发开启客户端白名单控制指令;

    s2、在客户端收到开启客户端白名单控制指令后,建立白名单策略库;

    进一步地:所述步骤s2具体为:

    s21、在客户端收到开启客户端白名单控制指令后,调用prelink预链接撤销功能,还原经prelink预链接优化后的动态库文件和可执行程序,得到原动态库文件和原可执行程序,以确保扫描时采集到的是相关动态库文件或可执行程序的原始哈希值;

    s22、经客户端撤销prelink预链接后,通过软件应用层对原可执行程序和原动态库文件进行自动扫描,将扫描过程中对应的原始哈希值录入数据库中,建立白名单策略库,在扫描过程中,扫描到的动态库文件和可执行程序的哈希值,必定是该文件的原始哈希值。

    s3、通过软件应用层,监控prelink预链接的优化行为和日志分析结果,实时获取经prelink预链接优化后的动态库文件和可执行程序;

    s4、计算优化后的动态库文件和可执行程序的哈希值,记为优化哈希值,并将优化哈希值录入数据库,作为优化后的动态库文件和可执行程序的当前哈希值;

    在同一动态库文件和可执行程序存在多次优化,仅保留其原始哈希值和最新的当前哈希值;

    s5、通过系统安全内核捕获控制系统中可执行程序和动态库文件的执行或加载操作,计算进行执行或加载操作的可执行程序和动态库文件的哈希值,记为捕获哈希值;

    s6、判断捕获哈希值与白名单策略库中同文件的可执行程序和动态库文件的原始哈希值或当前哈希值是否相等,若是,则允许可执行程序和动态库文件的执行或加载操作,完成基于linux白名单程序的控制,若否,则拒绝可执行程序和动态库文件的执行或加载操作,完成基于linux白名单程序的控制。

    在linux系统中,prelink预链接机制会利用事先链接代替运行时链接的方法来加速共享库的加载,加快起动速度,还减少部分内存开销,减少程序加载时间、缩短系统启动时间和加快应用程序启动,但在每次更新动态共享库时,相关的可执行文件都需要重新执行一遍prelink才能保证有效,造成新的共享库中的地址、程序文件等的哈希值很可能被修改;本发明在白名单策略库建立、扫描系统前,调用prelink的预链接撤销功能,一方面避免文件、可执行程序的hash被修改,还原相关动态库文件。

    另一方面,当经prelink优化后的动态库文件加载时,安全内核截获加载请求后,将截获的程序哈希值与策略库中的原始值和当前值进行对比,只要有一个符合,即允许执行;也兼顾保留了prelink预链接的优势。


    技术特征:

    1.一种基于linux白名单程序控制系统,其特征在于,包括:软件应用层、系统安全内核和数据库;

    所述软件应用层用于扫描控制系统中的可执行程序和动态库文件,并将可执行程序和动态库文件的原始哈希值录入数据库;

    所述数据库用于存储原始哈希值;

    所述系统安全内核用于捕获控制系统中可执行程序和动态库文件的执行或加载操作,计算捕捉过程中可执行程序和动态库文件的哈希值,将捕捉过程中可执行程序和动态库文件的哈希值与白名单策略库中的原始哈希值和当前哈希值进行对比,阻止非授权或不符合预期的可执行程序和动态库文件执行,完成基于linux白名单程序的控制。

    2.一种如权利要求1所述的基于linux白名单程序控制系统的控制方法,其特征在于,包括以下步骤:

    s1、在控制系统中安装客户端,并在客户端与服务端的控制中心成功建立连接后,通过控制中心下发开启客户端白名单控制指令;

    s2、在客户端收到开启客户端白名单控制指令后,建立白名单策略库;

    s3、通过软件应用层,监控prelink预链接的优化行为和日志分析结果,实时获取经prelink预链接优化后的动态库文件和可执行程序;

    s4、计算优化后的动态库文件和可执行程序的哈希值,记为优化哈希值,并将优化哈希值录入数据库,作为优化后的动态库文件和可执行程序的当前哈希值;

    s5、通过系统安全内核捕获控制系统中可执行程序和动态库文件的执行或加载操作,计算进行执行或加载操作的可执行程序和动态库文件的哈希值,记为捕获哈希值;

    s6、判断捕获哈希值与白名单策略库中同文件的可执行程序和动态库文件的原始哈希值或当前哈希值是否相等,若是,则允许可执行程序和动态库文件的执行或加载操作,完成基于linux白名单程序的控制,若否,则拒绝可执行程序和动态库文件的执行或加载操作,完成基于linux白名单程序的控制。

    3.根据权利要求2所述的基于linux白名单程序控制系统的控制方法,其特征在于,所述步骤s2具体为:

    s21、在客户端收到开启客户端白名单控制指令后,调用prelink预链接撤销功能,还原经prelink预链接优化后的动态库文件和可执行程序,得到原动态库文件和原可执行程序;

    s22、经客户端撤销prelink预链接后,通过软件应用层对原可执行程序和原动态库文件进行自动扫描,将扫描过程中对应的原始哈希值录入数据库中,建立白名单策略库。

    技术总结
    本发明公开了一种基于Linux白名单程序控制系统及方法,包括:软件应用层、系统安全内核和数据库;软件应用层用于扫描控制系统中的可执行程序和动态库文件,并将可执行程序和动态库文件的原始哈希值录入数据库;数据库用于存储原始哈希值;系统安全内核用于捕获控制系统中可执行程序和动态库文件的执行或加载操作,计算捕捉过程中的哈希值,将该哈希值与白名单策略库中的原始哈希值和当前哈希值进行对比,阻止非授权或不符合预期的可执行程序和动态库文件执行,完成基于Linux白名单程序的控制;本发明解决了Linux系统中prelink的预链接机制在加载共享库时,某些可执行程序和文件哈希值被修改的问题。

    技术研发人员:王晓娜;张松鸽;杨猛
    受保护的技术使用者:北京中软华泰信息技术有限责任公司
    技术研发日:2020.12.11
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-21050.html

    最新回复(0)