2017-08-19
第一个转测试安装包

2017-08-23
兼容xen虚拟环境的centos6.5的edr3

2017-08-31
1、修复系统性能信息统计的数据计算方式
2、/proc/cmdline和/proc/comm文件中获取进程的名称

2017-09-06
1、合并通讯协议中的当前终端版本，由int类型换成string类型
2、修正apt规则测试过程检测到程序退出，导致的linux-agent退出的问题
3、修正进程名称空的问题
4、增加commandshell功能、当前仅支持普通系统命令，不支持vi等编辑文本的命令

2017-09-15
1、APT基本规则验证
2、解决弱密码检测中出现的pipe句柄泄漏
3、主机用户列表信息上报
4、内部缓存性能优化

2017-09-21
1、增加command shell功能
2、调整驱动上报的数据，其中增加每个操作的进程信息（pid,ppid）
3、过滤edr自身进程和自身的子进程的操作
4、修改文件操作上报信息中，文件路径为空的问题
5、修改进程启动时文件路径为空的

2017-09-29
1.增加AES128 CFB算法
2.keybin的加密算法由原来的ECB调整为CFB加密方式,
3.driver新增进程启动用户名转换
4.运行信息状态统计，按照进程id进行统计，一段时间内的处理两
5.调整系统运行的tps统计，增加过滤量统计
6.统计一段时间内，被检测到的应用程序操作信息
7.调整pid文件的存放路径为固定路径/tmp/.edr.pid
8.调整客户端id的存放路径为固定路径/etc/.edrid,避免再次安装或者更新安装包之后出现客户端id变化的情况
9.发现data-server发送来的remoteshell中包含\r\n，其中popen在执行命令中存在\r\n的情况会出现错误，因此去掉
command shell的前后"\r\n"

2017-10-18
1、重构lua引擎，解决lua引擎内存膨胀的问题
2、C++中保存进程树，并缓存一小时以内的进程信息
3、进行产品化的名称相关信息的调整
4、lua引擎增加对系统密码的检测
5、优化弱密码检查性能

2017-11-07
1、netlink支持centos5.0版本
3、调整链接cpslib导致程序启动coredump的问题
4、包装netlink库，进行版本分离
5、对未初始化的数据进行初始化，解决乱数据的问题

2017-11-13
优化：
1、以（pid+handle）为单位对文件、网络读写进行数据合并操作，当数据达到一定量、规定的时间片、或者close操作之后，将缓存合并好的数据发送到data-server
2、修改在centos5控制台运行是，使用ctrl-c退出进程的方式导致程序coredump
3、调整程序线程池退出方式，使用stop方法替代kill的方式柔软的退出线程池，程序在退出的是时候可能会存在延迟大约30s的情况
4、去掉cryptcpp库的编译依赖
遗留问题：
    1、可能由于客户端的频繁写日志，导致系统的cache上涨
    2、存在获取获取进程的联机信息失败的情况，这个需要优化处理逻辑

2017-11-16
1、调整install.sh，将sniper安装为系统的服务（当前支持centos5/6）
2、在service sniper中支持{start, stop, status, uninstall}
3、驱动调整解决获取进程链接信息失败的情况
4、增加一个uninstall脚本，对软件安装包的删除和卸载（后期将整合到rpm包）
5、2017-11-13号的版本经过测试系统内存是稳定的，测试时间段为 [2017-11-13-18:34:30 - 2017-11-14-12:49:04]，建议放在安装了mysql的服务器中进行压力测试

注意：
    1、当前安装的方式是将解压后的目录拷贝的/usr/local/sniper目录中
    2、卸载脚本将删除edrid文件，这个将导致重新安装之后，主机的uuid发生变化
    3、卸载脚本将删除/usr/local/sniper文件夹
    4、卸载脚本会停止正在运行的服务，并卸载正在运行的驱动

遗留问题：
    1、由于ubuntu 16.04版本使用systemctl对服务进行管理，与原有的管理方式不同，需要单独进行处理，ubuntu的服务脚本在后续提供
    2、收到data-server断开链接的指令时，需要在日志中记录

2017-11-17
1、修复lua引擎中的network请求的处理，调整接口将ip地址和端口分开传入到lua引擎中
2、驱动调整进程启动信息的上报条件以及文件缓存的获取

2017-11-18
1、合并lua规则，主要修复进程名称通过imageFileName获取
2、centos5/6支持服务自启动
3、调整安装包目录结构，将散乱的so文件统一放在lib目录下
4、去掉原先试用ldconfig配置动态库搜索库路径的方式，该用内置的rpath设置默认搜索库路径
5、修复部分进程在创建链接和打开文件时获取缓存失败的问题

2017-11-20
1、修正安装脚本不支持redhat系统的问题
2、修正驱动上报数据tps错误的问题
3、针对从驱动接收数据结果进行单独处理，分别处理三种情况[OK, EMPTY, ERROR]
4、驱动定时打印正在链接的客户端ID到系统日志中
5、上报用户列表到data-server
注意：
    当前包主要进行“数据不上报”问题的回归验证


2017-11-20
1、修复应用层与驱动通讯问题，解决应用层获取驱动数据失败的情况

2017-11-23
1、支持脚本后缀为*.r的文件,通过配置文件配置，ruels脚本统一修改为后缀名为"*.r"
2、更新程序支持lua规则的更新已经应用层的更新
3、install.sh脚本增加对可执行文件赋予运行的权限，避免打包后的文件没有执行权限的错误

2017-11-24
1、修复lua引擎中“已处置“的告警，在上报后，显示“未处置”的问题
2、增加与服务端的心跳的调试日志，方便链接状态检查

2017-11-28
1、脚本使用rc4算法加密，注意：加密密钥与windows是不同一个, 保证平台的独立
2、规则已经进行了基本测试，解决部分规则不能触发的问题
3、将程序基本依赖库打包到安装包的lib目录下，现在安装环境可以不需要装pam\ssl\crypt等库，使用luajit替代lua动态库
4、调整客户端与驱动的链接鉴权流程
5、对lua引擎增加日志输出到单独的日志文件中，方便问题的定位
6、当前版本支持客户端对加密和不加密的规则都能支持，在配置文件config/edr3-agent.conf中encrype_rules进行这是，0表示不加密（*.lua），1表示加密*.r)

未转测：
1、ubuntu 1604\centos7 服务化

2017-12-05
1、ubuntu 1604\centos7 实现服务化，系统驱动自动加载sniperknl内核模块，以及启动sniper进程
2、调整install.sh脚本对文件/etc/issue和/etc/redhat-release处理，当前安装脚本支持centos7、ubuntu系统
3、edr3客户端支持新版本的data-server协议，调整为消息内容使用array的方式
4、各个平台增加命令:
    /usr/local/sbin/sniper-start        手动启动sniper服务
    /usr/local/sbin/sniper-stop         手动停止sniper服务
    /usr/local/sbin/sniper-regist       自动拷贝key.bin文件到服务/usr/local/sniper/config中
    /usr/local/sbin/sniper-unintall     手动卸载sniper服务相关信息

说明
    centos5、6 服务的启停止方式为 service sniper start/stop
    centos7、ubuntu 16.04 服务的启停止方式为 'systemctl start/stop sniper.service' or 'systemctl start/stop sniper'

2017-12-07
1、调整网络通讯协议头
2、调整缓存发包策略为，缓存的第一条消息发送到服务端，以及数量达到指定值的将消息发送到服务器，超时后直接清理数据，因为在刚进入缓存的时候已经发送
过数据了

未转测
    告警信息缓存未实现

2017-12-14
1、调整文件上报的策略，由原先的(pid+handle)作为合并key的方式调整为(pid+文件路径)进行消息合并上报，上报机制保持为定时定量上报
2、告警缓存代码实现完成，但是功能已经屏蔽，当前不支持告警消息合并功能
3、合并最新的linux规则，解决部分规则没有处置，但是上报状态为已处置的问题
4、lua规则加密使用和windows不一样的加密key来实现，保证linux的规则被破解了，windows不会受到影响
5、对原有的fork的hook操作时，对进程的创建和线程的创建进行了区分

2017-12-29
1、同步通讯协议，增加对文件操作的成功/失败次数上报
2、同步通讯协议，增加对网络操作的成功/失败次数上报
3、修复/proc文件系统获取cmdline时，存在不可见字符的问题
4、修复文件操作对应不到进程信息的问题
5、驱动线程创建的消息上报,过滤sniper线程启动事件上报
6、驱动／应用层协议结构使用一字节对齐
7、驱动支持获取系统调用返回值, 修改探针框架(jprob->kretprob)，本次修改不支持低版本内核（centos5，redhat5）

2018-01-15
1、解决应用层内存泄漏问题
2、修复不能触发wget和curl的黑域名警报的问题
3、tcpdump尝试执行和真正执行命令的区分
4、修复驱动中获取文件open操作时出现的系统crash问题

2018-01-16
1、同步规则中的资源文件，如IP地址黑名单白名单、黑白域名等

2018-01-18
1、对内核中的putname 和 getname做多内核版本的兼容

2018-01-25
1、安装脚本支持ubuntu 14.04，内核版本为:3.16.0-30-generic
2、调整处理流程，先对数据进行合并，再进行规则匹配
3、修正数据合并可能存在的内存泄漏
4、增加配置项，通过配置关闭和开启弱密码检测，弱密码检测默认开启
5、增加rpm，deb安装包信息的上报

2018-02-07
1、调整“清理不常用的文件数字信息(md5\sha1\sha256)”的清理策略
2、“当文件大小不一样时”重新计算文件的md5
3、edr3-performance.log增加进程启动时间和进程启动的相关信息
4、edr3-performance.log增加内部内存数据的定时打印

2018-03-02
1、将发送到data-server的数据dump到日志文件中
    a. dump文件进行滚动
    b. 每个dump文件最大大小500mb
    c. dump文件是当前流数据, 并对数据进行了hex处理

2018-03-14
1、增加“发送到data-server的数据dump到日志文件”的开关控制，默认是关闭，开关位置[edr3-agent.conf:socket_dump_switch]
2、驱动增加数据合并功能，减少驱动数据上报
3、应用层缓存功能，提升数据清理能力，对数据进行高效清理，加快内存回收
4、增加centos7的两个子版本(1611/1708)支持
5、对系统软件信息功能做rpm4.8.0 和 rpm4.11.3的兼容性支持

2018-03-20
1、增加系统白名单服务
    a、白名单以正在运行的进程的文件路径为key进行过滤，对白名单的进程操作不进行上报
    b、文件路径在lua规则文件中提供
    c、默认的白名单为: "/usr/lib/systemd/systemd-journald"、"/usr/bin/top"
    d、白名单仅仅支持500个，内部使用二分查找和鸡尾酒排序算法实现

2018-03-22
1、修改配置文件，弱密码检测功能默认关闭
2、修复安装脚本中，centos7服务自启动的问题，解决方式调整为在network.target之后启动

2018-03-26
1、修正在centos7 1708环境下reboot时，出现的卡死问题
2、优化内部线程启动和停止方法

2018-04-03
1、增加进程白名单，当进程启动路径在白名单中，则该消息不上报到数据接受服务器
2、调整sniper-stop命令，该命令不会将sniperknl从内核模块列表中移除

2018-06-16
1、驱动线程使用可中断方式休眠（msleep->msleep_interruptible）
2、修复中石油现网crash问题：
   问题描述：
   使用vfs_fstat接口获取文件属性，该接口在nfs文件系统底层使用了spin_lock_bh/spin_unlock_bh(禁止内核抢
占，并且关闭本地中断)，关闭本地中断和kprobe机制冲突导致系统crash。
   修复方法：
   通过句柄和内核进程信息，在驱动获取文件的inode结构，自定义封装get_fstat接口。
   建议测试范围：
   1、挂载nfs文件目录，并对目录下的任意文件进行读写操作
   2、变更vfs_fstat接口， 建议覆盖测试centos-1708/centos-1611重启卡死问题

2018-06-26
1、新增history监控功能, 针对指定路径的.bash_histor文件进行监控，扫描文件中特定的“标签”，将标签之后记录的历史命令进行消息报警
  b、历史文件中没有标签，不上报告警
  c、标签存在历史文件最后一行，不上报告警
  d、扫描到有标签，并且标签后面有命令执行记录，上报标签后面的所有命令
2、新增配置项，重启生效
    history_cycle ==> History文件扫描周期，默认：10s
    history_tag ==> history标签内容(字符串)，默认："cd /this/is/tag"
    history_files ==> History文件的全路径，如果存在多个路径，用英文格式逗号做分割

2018-06-27
1、添加history重复上报开关配置：history_repeat_report_switch((0、关闭重复上报，1、开启重复上报)，默认值为0
2、如果不需要重复上报就计算history文件md5值，如果没有发生变化就不再扫描文件
3、history_files配置默认路径为空，若需要开启扫描history文件功能，需要手动配置路径
4、优化关闭服务(./sniper -o stop)流程
5、优化uninstall.sh脚本，对停止失败的，不删除本地目录，需要手工操作
6、修改驱动线程名称, sniper-net, sniper-cache 
7、缓存过程内存申请失败，异常退出时添加unlock过程，避免死锁

2018-06-28
1、修复在进程快速启动或先fork后execve的进程启动场景产生的告警，导致进程树中不能正确的显示产生告警事件的进程信息
2、更新规则16以及黑域名黑ip列表

2018-07-03
1、修复tmp目录磁盘慢，程序启动没有写pid文件，而引起的卸载失败问题
2、调整启动加载proc文件系统的信息到loader线程中运行

2018-08-01
1、sniper内核模块日志是单独存放，存放路径配置为/var/log/sniperknl.log，按日志文件大小进行滚动，文件最大10mb
2、不上报文件的open/close操作
3、驱动日志不在终端中显示问题，定位后发现这个需要在系统的rsyslog中进行配置，调整内部日志级别

2018-08-13
1、解决进程频繁启动导致的内存泄漏

2018-08-31
1、调整更新程序，更新规则后，通知sniper agent重新加载apt规则
2、客户端支持自负载均衡，和多节点连接
3、客户端支持多节点列表更新
4、使用统一的luajit版本
5、过滤自身的upgrade程序的数据上报

2018-09-25
1、解决loader线程CPU占用变高
2、驱动进程启动参数获取接口，拷贝字符串之前先最大进行长度校验
3、修复驱动内存泄漏，getname和putname对齐使用
4、修复驱动在内核层访问应用层内存空间导致崩溃。

2018-09-30
1、install.sh 增加/usr/local/sbin的检查，如果当前路径没有在PATH中则将该配置添加到/etc/profile中
2、sniper-regist命令增加以下功能
    a.如果存在旧版本的keybin文件，则备份该文件
    b.如果存在旧版本的.server.list，则备份该文件
3、sniper-start 增加环境变量的检测
4、产生告警的基础事件在告警之前发向服务端

2018-10-17
1、c++版本的upgrade程序替换原python版本的upgrade程序，解决因为python环境不一致导致更新失败的问题
2、修复在计算软连接文件md5、sha1、sha256失败的情况
3、修复读取软连接文件信息内容不全的问题
4、驱动支持centos6.3 kernel version: 2.6.32-279.el6.x86_64

2018-10-19
1、修复停止应用层失效导致驱动无法卸载的问题
2、修复centos6版本规则失效的问题

2018-10-24
1、修复更新程序依赖库版本不一致导致更新程序无法进行更新的问题
2、修复读取软链接文件可能会出现死循环的问题
3、修复获取文件软连接路径得到的是相对路径而不能计算文件md5的问题

2018-10-30
1、修复重启系统之后，客户端调用升级程序不能进行更新的问题
2、修复更新规则文件失败，导致sniper coredump的问题

2019-02-28
1、增加告警白名单功能
2、增加告警白名单更新周期，默认5分钟，配置文件config/edr3-agent.conf中的配置项 apt_whitlist_update_cycle=5
3、增加RHEL 6.2、RHEL6.3版本的支持

2019-04-18
1、修正更新脚本在tmp目录下运行产生告警的问题
2、调整APT规则引擎为window引擎，去掉Linux调整之前的引擎
3、优化版本的输出，使用./sniper -v可以看到当前客户端版本，版本格式 major.minor.patch，每次打包会自动更新patch id
4、优化客户端消息合并缓存数据的清理效果
5、解决中石油发现的crash问题
6、修复网络数据上报的相关问题
7、同步最新登录协议，上报系统类型
8、文件时间信息修改为为毫秒
9、同步最新更新协议
10、历史命令告警修改为pb协议格式
11、修改版本号
12、优化协议组装接口
13、客户端uninstall命令，该命令会停止客户端并上报ClientID（https协议上报到文件服务器）

2019-04-24
1、增加自动处置开关更新功能
2、修复定时更新APT白名单列表问题
3、对netlink 文件描述符限定，fork进程不对该描述符copy-inheriting避免sniper启动upgrade程序后拷贝继承sniper的netlink具柄，导致更新时卸载驱动失败
4、卸载脚本日志记录到Linux系统日志中
5、针对整包更新功能进行日志优化

2019-05-9
1、调整整包升级机制，升级包需要单独的工具进行生成
2、安装包调整格式为zip格式
3、客户端心跳间隔可配置（heardbeat_cycle）默认15秒
4、客户端断链后最长休眠周期可配置（network_sleep_cycle）默认30秒
5、增加日志记录APT引擎调用C++API结束进程操作
6、增加version.json文件记录安装包的主要信息
    a、客户端版本
    b、内核版本
    c、sniper\upgrade md5信息
    d、系统发行版本

2019-05-15
1、安装包调整格式为tar格式
2、修正更新重启后，继承上一个久客户端的连接
3、upgrade更新模版删除旧备份的问题

2019-05-21
1、投递socket close请求到lua引擎中，避免引擎出现内存增长的问题
2、增加lua _G变量的监控，定时5分钟打印，并输出到log/edr3-lua.log中
3、调整计算进程文件md5方式，减少cpu使用

2019-05-23
1、同步引擎接口getProcess

2019-05-28
1、修复驱动安装出现多进程推进次序不一致导致使用为初始化内存的问题

2019-05-29
1、进程文件操作的文件路径调整为绝对路径
2、修复cppcheck静态检测相关问题

2019-06-10
1、正式运行的工程中去掉cpslib库的gcov调试信息
2019-06-21
1、修复白名单功能，如果当前进程为白名单，或者当前进程的父进程是白名单，则该进程信息不过规则
2、调整进程树缓存结构，支持白名单功能的
3、驱动增加hook点
  sys_readv
  sys_preadv
  sys_pread64
  sys_writev
  sys_pwritev
  sys_pwrite64
4、调整部分日志输出

2019-07-16
1、工程脚本优化：
    comment:
        * 增加对crash文件夹不存在的判断以及相关的提示信息
        * 安装脚本去掉不必要的目录/runtime-tmpdir的创建
        * 程序卸载不清理客户端id的配置文件
    变更范围:
        error-report.sh
        install.sh
        uninstall.sh

2019-08-05(version: 3.6.0)
1、bug 4772 EDR3.5-运维管理中心-异常次数统计无数据显示
    comment: 
        * 客户端正常退出指的是，通过使用命令./sniper -o stop或者使用sniper-stop停止客户端，如果没有使用这两种方式，则认为是客户端非正常退出
        * 下一次启动则检查上一次是否时正常退出，如果不是则上报服务端，客户端非正常退出的时间
    变更范围:
        * shutdown.sh
        * sniper
        * uninstall.sh
        * 运行目录增加.running_heartbeat，记录当前客户度的心跳时间，如果文件不存在则表示正常退出
2、同步功能，增加客户端安装时间上报
    comment: 客户端安装时间统一为安装、升级后的当前版本的安装时间
    变更范围:
        * uninstall.sh
        * sniper
        * 升级功能涉及到脚本uninstall.sh脚本
        * 新增文件/etc/.edr.install.date记录客户端安装时间
3、与卸载逻辑相关的bug修复，bug id 如下:
    bug 4962  EDR3.5-Linux探针-卸载探针后，主机未调整至已卸载分组下
    bug 5003  EDR3.5-Linux终端-卸载-未在客户端运行目录下卸载，卸载请求无法发送到服务端
    comment: 客户端卸载上报，并通知服务端将该主机移到已卸载分组, 使用http协议通知服务端当前主机已卸载
    变更范围: 
        * uninstall.sh
        * sniper

2019-08-15(version: 3.6.0)
1、修复安装脚本系统版本识别相关问题
    comment: 针对系统版本号识别相关逻辑进行修改，正确识别centos6或7、rhel6或7相关的版本号，针对不同版本使用不同的服务安装模式
    变更范围：
        * install.sh
    #5147 linux探针-linux探针获取不到告警进程的MD5值
    commemt:
        * 调整hax算法后代码同步出现错误，导致该问题

2、bug #5100 威胁分析中心-威胁分析-存在未被合并的告警事件
    comment: 针对规则在报警后通过进程ip查询进程的唯一标示（UUID）时出现进程获取错误，导致数据上报时序的问题，出现报警不一致的情况
    变更范围:
        * sniper

2019-08-21
1、数据投递合并功能实现
    comment:
        * 网络行为投递
            1、增加采集端口的配置信息，根据配置的采集端口进行相关的网络行为投递
            2、增加连出敏感端口监控功能
            3、增加连入端口白名单过滤功能，针对白名单进行放行，该数据不上报服务端
            4、针对进程的连入、连出行为进行数据投递频次的限制，配置信息由服务端下发
            5、增加投递频次的告警
            6、增加网络流量阶段性数据投递策略
        * 文件行为投递
            1、同一进程对同一路径下的文件操作只投递一次
            2、同一进程单位时间内(N)，仅投递前M个的文件的操作，其中N和M在服务端配置
            3、增加投递频次的告警
        * load image行为合并
            1、针对同一md5的进程频繁启动的场景，仅上报增量的load image行为
        * 新增数据投递配置信息同步接口
        * 优化数据加载逻辑
        * 新增lua接口进行投递频次告警
        * 通讯协议调整“网络发送”使用网络协议进行上报，需要配合新版本ds使用

2019-08-26(version: 3.6.0)
1·bug 修复
    #5128 linux探针-升级包不支持Redhat7.5/7.6系统
    comment:
        * 调整打包脚本，针对升级保重的map文件进行调整支持rhel-7.5/7.6版本
    变更范围:
        * 升级包中的map.json文件

    #5129 EDR3.5-linux探针-redhat7.6版本由于盏内存溢出导致进程异常终止
    comment:
        * 针对服务进程异常退出，增加守护进程机制，在进程异常退出后，守护进程将进程拉起
    变更范围:
        * sniper
        * sniper-start
        * sniper-stop
        * sniper-uninstall

2019-08-27(version: 3.6.0)
1·bug 修复
    #5150 EDR3.5-linux探针-新增守护进程以后，升级功能受到影响
    comment:
        * 调整内部调用方法system -> popen的方式
    变更范围:
        * upgrade

    变更范围:
        * sniper
2019-09-03(version: 3.6.1.0)
1·bug 修复
    #5153 Linux探针-3.6.0版探针升级成功之后分组改变
    comment:
        * 针对卸载和升级进行单独处理，卸载脚本调整因更新而卸载的操作不发送卸载命令到服务端
    变更范围:
        * upgrade
        * sniper-uninstall, install.sh
        * resource/upgrade-template.sh

2、产品化相关统一处理，使用4位版本号信息，具体描述如下
    comment:
    - 定义：A.B.C.D
        - A 主版本号
        - B 次版本号
        - C 功能版本号
        在主板本以及次版本号基础之上进行了较大改动的时增加，例如3.6.0，3.6.1
        - D 编译（修订）版本号
        使用CICD流水线编号、打包编号，用于区分安装包
    变更范围：
        * sniper
        * upgrade
        * version.json

2019-09-17(version: 3.6.1.1)
1、bug 修复
    #5158 linux探针-Linux探针升级不受agent更新配置开关影响
    comment:
        * 升级请求增加clientId字段，客户端上报自身clientId，服务端根据clientId决定客户端是否需要升级
    变更范围:
        * sniper
        * upgrade
        * resource/upgrade-template.sh
    #5194 Linux探针-Redhat7.6-文件创建未走合并流程
    comment:
        * 文件创建事件没有进行合并，将文件创建事件加入合并流程。
    变更范围:
        * sniperknl
        * sniper
    #5195 Linux探针-centos7.5-升级失败
    comment:
        * 测试环境内核版本与打包环境内核版本不一致，升级程序从安装目录中version.json文件中加载打包环境的内核版本信息，
            如果该内核版本在升级包中能匹配到对应安装包，也进行升级。
    变更范围:
        * upgrade，整包升级功能

2、卸载脚本优化
    comment:
        * 卸载脚本强制停止程序时对获取sniper相关进程信息时，排除.sniper_tmp下的程序
    变更范围:
        * sniper-uninstall
        * ./uninstall.sh
        * upgrade
        * resource/upgrade-template.sh
3、增加对规则加载失败导致主程序coredump的处理
    comment:
        * 增加脚本加载失败的异常处理

    变更范围:
        * sniper

2019-09-25(version: 3.6.1.5)
1、bug修复
    #5201 linux客户端投递无效文件信息
    comment: 因客户端应用可执行程序无文件描述以及文件版本内容，因此使用默认值空字符串
    变更范围:
        * sniper

    #5212 Linux探针-Redhat7.3-安装探针后过段时间自动下线
    comment: 升级包中的map.json文件映射关系错误，导致升级后驱动不能安装，客户端启动失败，调整升级包中的map.json的映射关系
    变更范围:
        * upgrade
        * 升级包

    #5213 linux探针-centos6.8-安装探针后不报警
    comment: 因读取没有对文件类型进行判断文件类型判断时，读取字符设备导致服务卡死
    变更范围:
        * sniper

2、优化
    命中进程行为白名单的事件不上报服务器，不过规则引擎
    comment：命中进程行为白名单的事件不上报服务器，不过规则引擎，其中事件包含，进程启动停止、线程启动，load image、文件事件、网络事件

2019-10-17(version: 3.6.1.9)
1、bug修复
    #5206 linux客户端覆盖安装，没有执行卸载--重新安装的流程
    comment: 因安装脚本不支持覆盖安装功能，导致覆盖安装时出现程序运行版本不正确等问题
    变更范围:
        * install.sh 调整，新增加覆盖安装功能，以及对原有的纯安装的支持
        * pure-install.sh 新增，原有的安装脚本
        * sniper-ctl.sh 新增，作为整个应用层的控制命令集成
2、功能优化
    comment:
        * 针对eif判断接口的优化，在判断是否为elf文件时对空文件、非普通文件（字符设备/块设备等）或者文件小于elf头的文件进行预处理
        * 调整pid文件路径从原有的/tmp目录调整到/etc目录
        * 将key.bin中原始IP/端口加入server list文件中
    变更范围:
        * sniper
        * upgrade

2019-12-26(version: 4.0.0.x)
1、修复bug
2、功能实现
    * 单机取证功能
        * 关闭进程
        * 关闭主机
        * 历史命令优化，默认上报每个用户的20条记录
    * 网络隔离
    * 升级
        * 整包升级
        * 规则升级
    * eis
        * 对服务端下发的名单进行操作记录
        * 上传robin失败，更新本地记录标记该文件上传失败，下一次触发时再重新查询及上传

2020-01-10(version: 4.0.0.10)
1、修复bug
    #5777 EDR4.0-威胁分析中心-全网文件-Linux终端文件时间错误
        comment: 将文件时间由秒的格式转化毫秒格式
        变更范围：
            sniper
    #5701 EDR4.0-linux探针，crond自动任务被EIS拦截，并且错误展示为/bin/bash
        comment: 非ELF格式未知文件当普通名单处理，不上报robin，不进行未知拦截
        变更范围：
            sniper
    #5755 EDR4.0-Linux终端存在大量被EIS拦截后的待验证文件
        comment: 非ELF格式未知文件当普通名单处理，不上报robin，不进行未知拦截
        变更范围：
            sniper
2、功能实现
    * 应用层代码兼容 Darwin 与 Linux
    * Darwin 系统baseline 排除/dev目录
    * 增加非root用户启动客户端的限制，提示用户切换到root用户执行
    * 增加定期清理缓存的功能(echo 3 > /proc/sys/vm/drop_caches)
    * 修复读取keybin字段错误的问题
    * eis业务调整，非ELF格式未知文件当普通名单处理，不上报robin，不进行未知拦截

2020-01-16(version: 4.0.0.13)
1、修复bug
    #修复4.0.0.11版本升级失败问题
        comment：拷贝升级资源文件到客户端安装/升级目录下
         变更范围：
             upgrade
    #修复单机取证历史命令重复上报问题
        comment: 系统内置nologin用户历史命令不上报
        变更范围：
            sniper
2、功能修改
    * remoteshell ls 默认路径为”/“根目录
    * 设置探针运行目录下的elf文件为白名单，并且不受文件大小限制

2020-02-05(version: 4.0.0.16)
1、修复bug
    #5996 EDR4.0-Linux探针-偶现Linux所有规则都不告警
        comment：md5/sha1/sha256等接口只处理普通文件，避免读字符设备/块设备/虚拟映射文件..导致阻塞
         变更范围：
             sniper
    #6010 EDR4.0-Linux探针-4.0.0.13版本覆盖4.0.0.6版本报错
        comment: 覆盖安装停止应用层时调整进程工作路径，避免rpath相互影响
        变更范围：
            install.sh
    #6011 EDR4.0-运维管理中心-威胁分析平台-终端主机管理-centos7主机探针上报大量没有父进程id、文件路径、启动用户名等信息的进程数据
        comment：启动加载安装包内默认名单，sniper/eis-cli进程信息不上报
         变更范围：
              sniper
    #6052 EDR4.0-linux终端-Linux-agent-cnetos7-1708安装包./eis-cli存在兼容问题，导致eis客户端无法启动
         comment：调整eis-cli编译工程
         变更范围：
             eis-cli
    # 修复客户端centos7版本软件列表信息缺失
         comment：调整软件列表萃取规则
        变更范围：
            sniper
2、功能修改
    * 文件事件发送给引擎触发规则
    * 软件列表修改为定时上报
	
2020-02-28(version: 4.0.0.19)
1、问题修复
    #修复centos7-1611开启网络隔离后拦截sniper进程网络数据数据
        comment: 高内核版本解析源数据时会偏移指针，导致源数据被污染所有网络数据收发异常
        变更范围：
            driver
    #部分依赖文件write事件的规则触发失败
        comment: 使用最新文件缓存规则后同一类型的文件数据不发往引擎，缓存模块新增引擎缓存，保证文件open/close/read/write都发送到引擎触发规则
        变更范围：
            sniper
    #6127 威胁分析中心-威胁列表-linux相关告警均没有MD5
        comment: 引擎上报告警内容无进程md5字段，agent/引擎进程协议进程基础数据新增processMd5字段并上报服务器
        变更范围：
            sniper/规则引擎协议
    #6140 EDR4.0-Linux终端-Ubuntu14.04.5系统安装探针时报驱动日志定时回滚脚本安装失败
        comment: Ubuntu系统与centos存在差异，自启动服务和定时服务命令找不到导致安装失败，修改脚本做系统兼容
        变更范围：
            install-sniperknl-logger.sh

2、功能修改
    * 修改ftp上传文件名格式：md5_filename
    * 规则引擎协议进程基础信息新增processMd5字段，EIS告警传递进程基础信息给引擎
    * 客户端/引擎网络协议中端口为80 时类型修改为domain
    * 告警协议增加进程信息
    * 调整与lua引擎的接口
    * 调整ftp上传方式，使用临时文件到正式文件的处理流程
    * 优化ubuntu日志滚动
3、功能新增
    * 单机取证新增USB扫描上报功能
    * 启动startup脚本增加macOS的支持，针对不同系统平台加载不同驱动
    * 增加shutdown脚本强制停止功能

2020-03-03(version: 4.0.0.20)
1、问题修复
    #网络告警缺失进程路径
        comment: 如果告警中进程路径为空根据告警进程唯一ID查询缓存填充
        变更范围：
            sniper
    #cents7网络隔离失效
        comment: 修复centos7系统数据长度判断错误导致网络隔离失效问题-持续观察性能稳定
        变更范围：
            driver


2020-03-05(version: 4.0.0.21)
1、问题修复
    #4.0.0.20版本eisbaseline建立异常
        comment: 调整eis模块系统预编译宏判断，修复eisbaseline建立异常导致eis拦截所有进程启动
        变更范围：
            sniper
    #未知文件拦截告警详情里面显示的是黑名单拦截
        comment: 驱动添加eis拦截告警类型(0黑名单，-1未知文件)，与引擎保持一致
        变更范围：
            driver

2020-03-12(version: 4.0.0.22)
1、问题修复
    #6011 EDR4.0-运维管理中心-威胁分析平台-终端主机管理-centos7主机探针上报大量没有父进程id、文件路径、启动用户名等信息的进程数据
        comment: 过滤进程信息中pid和ppid都为0、进程路径和commandline都为空的无效请求
        变更范围：
            sniper
    #6415 Linux终端设置隔离功能后无法对终端进行升级
        comment: 文件服务器地址没有下发驱动导致被拦截，下发文件服务器地址到驱动
        变更范围：
            sniper
    * 客户端安装时间上报失败
        comment: 上报消息没有填充协议号导致上报服务器失败
        变更范围：
            sniper
2、功能优化
    * 应用层针对内部send、sendto、recv、recvfrom使用统一接口进行内部协议数据转换
    * 未知文件查询如果服务端长期不返回结果的，则再次查询，查询间隔为5*60
3、功能新增
    * 新增客户的异常退出上报功能

2020-03-13(version: 4.0.0.25)
1、问题修复
     # 网络异常退出上报失败
        comment: 协议ID映射错误
        变更范围：
            sniper
     # baseline建立时漏扫没有可执行权限的elf文件
        comment: 调整baseline扫描接口
        变更范围：
            sniper
   # 开启未知拦截后客户端升级失败
        comment: 升级脚本最后检测客户端运行状态时切换工作目录到/usr/local/sniper/下，避免./sniper -s启动加载升级目录下的动态库
        变更范围：
            升级脚本


2020-03-24(version: 4.0.0.27)
1、问题修复
     # 6433 linux终端--remoteshell输入命令后，显示结果没有对本次命令做记录，需要优化
        comment: 将命令行 添加在 remoteshell响应中
        变更范围：
            sniper
     # 6435 linux-sniper---黑文件被拦截后，告警详情中展示为‘’未知程序‘’已被EIS拦截
        comment: 驱动缓存更新失败
        变更范围：
            sniper
   # 6150 EDR4.0-windows探针上报网络通讯数据出现个别大部分为空情况
        comment: 
        变更范围：
            升级脚本
   #6487 威胁分析中心-资产详情-网络信息列表和usb投递数据不准确
        comment: 回补connect事件时填充protocol字段
        变更范围：
            sniper
   #6511 EDR4.0-Linux终端-超过FTP文件大小限制未上传成功的文件，修改限制后仍未上传成功
        comment: FTP文件上传限制调整后，通知驱动重新查询缓存，避免名单失效但无法更新
        变更范围：
            sniper&driver
   #6011 EDR4.0-运维管理中心-威胁分析平台-终端主机管理-centos7主机探针上报大量没有父进程id、文件路径、启动用户名等信息的进程数据
        comment: 客户端过滤进程路径为空的数据
        变更范围：
            sniper
   #6487 EDR4.0-Linux终端-abrtd进程上报了多条告警数据  
        comment: abrtd采集系统信息是系统服务，是否屏蔽这一类进程数据或者告警需要与产品和威胁中心讨论处理方案，建议4.0版本暂不优化
        变更范围：
            无

2020-03-30(version: 4.0.0.29)
问题修复
    #6560 EDR4.0-Linux终端-centos和redhat所有终端sniper下产生了大量的core文件，部分操作系统sniper进程退出，探针下线
        comment: 客户端解析数据合并配置项空字符串转换异常，解析配置项时如果为空直接跳过不处理
        变更范围：
            sniper
    #6377 robinscan 上报文件时间错误
        comment: robinscan 上报文件修改为毫秒秒级时间
        变更范围：
            sniper

2020-04-01(version: 4.0.0.30)
问题修复
    #6568 new bug EDR4.0-Linux终端-告警进程路径返回错误，返回为sniper的路径
        comment: 引入macOS修改fork事件获取进程路径代码，计算文件绝对路径失败默认使用了sniper工作路径，调整fork事件路径获取流程
        变更范围：
            sniper

    #6401 EDR4.0-Linux终端-centos6.7/Redhat6.7/Redhat7.3/centos7.5/centos7.6操作系统探针启动失败
        comment: 调整编译工程，避免编译是部分特殊指令的使用，做指令集兼容
        变更范围：
            rocksdb编译工程

2020-04-02(version: 4.0.0.31)
问题修复
    #6581 文件加载信息不全
        comment: LoadImage协议缺少字段，服务端无法根据reference_process_indentity关联查询基线LoadImage，协议文件添加并上报给服务端
        变更范围：
            协议/数据合并模块

2020-04-23(version: 4.0.0.34)
功能实现
    # centos6.0 单机取证获取USB列表客户端coredump
        comment: centos6.0没有lsblck命令，命令执行失败boost_process::child抛异常，捕获并处理异常
        变更范围：
            sniper

2020-04-26(version: 4.0.0.35)
# 修复因客户端keybin注册脚本名称优化后客户端升级失败问题
        comment: regist.sh修改为register.sh，以及
        变更范围：
            sniper
# 因OEM频繁修改客户端命令脚本，优化启动/停止命令启动路径
        comment: 使用客户端安装脚本绝对路径
        变更范围：
            客户端命令脚本
			
2020-05-11(version: 4.0.0.36)
# EIS 业务优化
        comment: 调整mmap拦截返回值，避免操作被拦截后调用程序崩溃
        变更范围：
            driver
#6634 EDR4.0-linux终端-centos7.4以上版本单线程系统安装4.0.0.35版本探针并启动性能监控脚本出现探针下线、系统卡死
        comment: md5/sha1/sha256计算会引起CPU异常，超过500M不计算、/proc和/dev下的所有文件不计算
        变更范围：
            sniper
# 修复现网环境出现驱动crash
       comment: 限制驱动内存分配，避免跨页分配内存引起的OOM
       变更范围：
            driver
# 安装客户端后客户端命令查找失败
        comment: 安装过程检查并将客户端安装目录添加到环境变量
        变更范围：
            安装脚本

2020-05-27(version: 4.0.0.38)
# 修复深信服centos7测试环境安装客户端后，出现CPU占用高引起系统无响应问题
        comment: 驱动采集open事件fstat获取文件状态信息引起
        变更范围：
            driver

2020-06-08(version: 4.0.0.39)
#6685  centos6.7 和7.3版本安装探针后，隔离功能没有完全生效
        comment: 屏蔽白名单进程放通功能，由白名单地址（ds地址/文件服务器地址等）放通sniper与服务器通讯数据
        变更范围：
            driver

2020-06-11(version: 4.0.0.41)
 #公网环境升级失败修改方案
        comment: 客户端增加断点续传功能，如果下载升级包超时，休眠10分钟后根据本地已下载文件大小进行断点续传重新下载，下载完成后进行md5值校验，匹配成功后才执行升级流程
        变更范围：
            sniper/upgrade

2020-06-15(version: 4.0.0.42)
 #下载目录存在相同文件名的文件引起下载异常
        comment: download response检查文件大小如果本地文件比远端大，下载异常删除升级包，等待下次更新；如果出现下载超时，修改超时时间为MAX_TIMEOUT(10分钟)
        变更范围：
            sniper/upgrade

2020-06-22(version: 4.0.1.0)
  #  robinscan 功能优化
        comment:
            1、名单查询/响应协议新增fileSource字段，用于区分robinscan和eis查询，如果是robinscan不论是不是未知文件都上传robin扫描
            2、robinscan上传文件到robin-temp 目录后移动至 robin-rescan目录，eis未知文件上传后移动到 robin-scan
        变更范围：
            sniper
  #  客户端启动流程优化
        comment:
            1、启动流程调整，网卡信息加载失败不影响客户的启动，加入定时任务运行过程动态加载，直到加载完成
            2、客户端启动是检查/etc/.edr.pid中进程号如果正在运行，检查正在运行的进程名，如果是sniper进程就退出启动流程，如果是其他进程就启动客户端
        变更范围：
            sniper

2020-06-23(version: 4.0.1.1)
  #  修复公网断点续传下载失败问题
        comment: 修复断点续传没有启动导致公网升级测试失败，开启断点续传功能并将断点续传标记打印到日志
        变更范围：
            sniper

  #  客户端功能优化
        comment: 每次客户端登录成功后都重新加载并上报软件资产信息
        变更范围：
            sniper

2020-07-07(version: 4.0.0.43)
  #  同步修复公网断点续传下载失败问题
        comment: 修复断点续传没有启动导致公网升级测试失败，开启断点续传功能并将断点续传标记打印到日志
        变更范围：
            sniper
  #  重庆农商行redhat 7.6和7.8版本兼容开发
        comment:  使用centos7-1804包安装，本次新增redhat-7.6(3.10.0-957.el7.x86_64)、redhat7.8(3.10.0-1127.el7.x86_64)升级依赖支持
        变更范围：
            sniper

2020-07-10(version: 4.0.0.44)
  # 修复ftp服务器端口配置超过32767后文件上传失败
        comment: 使用无符号短整型类型存储ftp端口信息
        变更范围：
            sniper

2020-08-11(version: 4.0.1.3)
  # 规则引擎接口调整
        comment:
             1、新增开关控制apt白名单更新，默认不更新
             2、进程退出事件投递到引擎
             3、新增get_client_version/get_inactive_process(根据引擎传人进程ID列表返回该列表中已退出进程)接口
             4、调低告警日志打印等级，应用层默认不输出规则告警信息
        变更范围：
            sniper

2020-08-17(version: 4.0.0.45)
  #  调整规则日志打印
        comment: 更新模块增加调试日志，打印规则更新请求以及响应便于问题定位
        变更范围：
            sniper
 #  修复因9090端口被占用引起客户端coredump
        comment: 添加eis_listen_ports配置项，设置一个端口范围以冒号分割默认(8090:9090)，启动时选择一个未被占用的端口启动监听
        变更范围：
            sniper

2020-09-23(version: 4.0.1.5)
  # 6967  EDR4.0.1-威胁分析平台-安全概览-资产概览-linux软件资产第一次安装登录后统计为双倍
        comment: 关闭定时任务启动上报软件资产，避免与登陆响应时同时上报引起服务端入库异常
        变更范围：
            sniper
  # 通讯模块增加自检机制
        comment: 如果服务端长时间不回登陆响应或者心跳响应就重置连接
        变更范围：
            sniper

2020-09-29(version: 4.0.1.6)
  #6974 EDR4.0-linux探针，服务端ds离线一段时间后再启动ds后，linux由于积压过多数据导致持续登录失败，无法正常上报数据
        comment: 使用高低水位队列控制通讯模块数据推送
        变更范围：
            sniper
  # 开启网络隔离后客户端/服务端无法跨子网通讯
        comment: 添加隐藏配置项“iptables_allow_ports”放通DHCP端口，端口之间通过英文逗号分隔，默认：iptables_allow_ports=67,67
        变更范围：
            sniper

2020-10-09(version: 4.0.1.7)
  # 客户端通讯模块优化
        comment: 
             1、打印socket outgoing缓存队列状态
             2、通讯模块添加数据丢失监控
             3、网络库调整，由ioc线程主动从缓存队列消费数据
        变更范围：
            sniper
2020-10-14(version: 4.0.1.2044)
  # 客户端新增系统兼容
        comment: 
             oracle-6.6：2.6.39-400.294.3.el6uek.i686
             oracle-7.4：4.1.12-94.3.9.el7uek.x86_64
             ubuntu-14-04-4：3.13.0-24-generic
             Debian 9：4.9.0-8-amd64
             ubuntu-16-04-170：4.4.0-170-generic
             ubuntu-16-10-187：4.4.0-187-generic
        变更范围：
            driver

2020-10-26(version: 4.0.1.2048)
  # 南京众安心跳包版客户端
        comment:
            centos8/centos6.7-i686/oracle6.6-i686/ubunt12.04/debian8/debian8-i686
        变更范围：
            sniper

2020-10-27(version: 4.0.1.10)
  # 潍柴财务系统卡死
        comment: 仅打包应用层客户端安装包
        变更范围：
            打包工程

2020-11-5(version: 4.0.1.2055)
  # 南京众安心跳包版客户端问题修复
        comment:
            1、修复安装客户端后，调整网络IP地址导致登录请求中mac为空的情况
            2、网络连接信息的获取，增加线程安全保护
            3、新增move接口支持跨盘拷贝，修复opensuse系统跨盘拷贝导致升级失败
            4、驱动get_process_cmdline_argv接口手动计算cmdline最大长度
            5、进程树缓存调整，只用LUR替代原有的unordered_map的方式，进行数据的自动淘汰，限制历史树最大缓存为20w且进程行为白名单不插入历史树
 变更范围：
            sniper

2021-04-26(version: 4.0.2.5, 漳州核电)
# 同步4.0.1.24版本问题修复
        comment:
           1、使用centos6安装包兼容centos6.7/rhel6.2
           2、拆分客户端日志配置，避免守护进程和业务进程同时持有所有日志句柄，修复多进程引起的日志滚动异常问题
        变更范围：
           sniper
# 漳州核电 
 comment: 打包最新版本规则/引擎(EndpointThreatsDetectionEngine/v4.0/rules/latest/NuclearPowerOfZhangZhou/Linux/build.zip)
        变更范围：
           rules

2021-04-28(version: 4.0.2.6) 
# 漳州核电
comment: 打包漳州核电定制规则/引擎(EndpointThreatsDetectionEngine/v4.0/rules/latest/NuclearPowerOfZhangZhou/Linux/build.zip)
        变更范围：
           rules
# 问题修复
comment: 
           1、loader模块进程事件后置处理增加日志用于跟踪中油 runc init 进程路径异常问题
           2、用户列表/历史命令告警/文件扫描/弱密码告警上报使用EdrCmd中对应ID
           3、如果规则策略中没找到“AiAnalysis” 就设置为false关闭未知文件查询/上传
        变更范围：
           sniper

2021-07-08(agent version: 4.0.2.9，rule version:40.1.2.5015)
# 新增安装包
comment: 兼容oracle-7.4(4.1.12-94.3.9.el7uek.x86_64)系统
        变更范围：
           打包工程
# K8S/docker将系统slab内存占满后客户端驱动内存使用异常导致系统重启
comment: 优化驱动内存分配及使用校验
        变更范围：
           driver

2021-07-23(agent version: 4.0.5.0，rule version:40.1.2.5188)
# remoteshel功能扩展
comment: 
           1、新增download命令将指定本地文件压缩后上传至服务端
           2、新增upload将服务端指定文件下载到本地
           3、systemshell执行shell命令
           4、新增uninstall命令卸载客户端
        变更范围：
           sniper

2021-07-30(agent version: 4.0.5.2，rule version:40.1.2.5188)
# 修复4.0.5.0版本发现问题
comment:
                  1、修复download 命令文件不存在，文件状态展示异常问题
                  2、修复重复上传文件异常
                  3、优化中文文件名文件上传失败问题
                  4、优化systemshell命令行中带特色字符命令启动失败问题
        变更范围：
           sniper
# 采集端口支持范围配置
comment:
                  1、采集端口支持范围配置解析
                  2、优化采集端口匹配算法，支持范围查找
        变更范围：
           sniper


2021-08-17(agent version: 4.0.5.4，rule version:40.1.2.5448)
# 采集端口支持范围配置
comment:  修复采集端口范围查找问题
        变更范围：
           sniper
# 数据精简优化
comment:
                  1、 在驱动层过滤proc文件系统部分文件事件采集上报，减少数据量
                  2、添加采集开关,采集事件可配置默认全采集
                            配置文件路径：config/.ignore.conf
                            配置项：file_open/file_create/file_read/file_write/file_close/file_delete/file_rename/file_mkdir/file_rmdir
                  3、数据统计优化，客户端添加统计日志以cmdline为key统计采集事件流量
        变更范围：
           sniper

2021-09-03(agent version: 4.0.5.7，rule version: 40.1.2.5642)
# 默认采集开关配置
comment:  默认不采集file open/file close事件
        变更范围：
           sniper/driver
# 本地字符集优化，修复本地字符集设置为gbk编码后客户端掉线问题
comment: 修改本程序setlocale环境变量，本地字符集默认使用en_US.utf8，如果本地有中文utf8就修改为zh_CN.UTF-8
        变更范围：
           sniper
# 系统兼容
comment:  兼容ubuntu1804（4.15.0-118-generic）系统
        变更范围：
           打包工程
# 打包最新规则引擎
comment:  修复性能测试规则引擎CPU占用高问题
        变更范围：
           rules

2021-09-06(agent version: 4.0.5.8，rule version: 40.1.2.5642)
# 修复升级失败问题
comment:  升级脚本拷贝新增配置文件异常，导致升级失败
        变更范围：
           升级脚本
# download命令功能优化
comment: download命令必须提供密码，且密码为1-32位的数字或字母
        变更范围：
           sniper

2021-09-17(agent version: 4.0.5.9，rule version: 40.1.2.5642)
# 优化客户端内存占用
comment:  
           1、使用LRU模块优化历史进程缓存
           2、优化文件合并缓存清理结构，减少内存占用
           3、规则引擎reload时销毁原规则规则引擎lua_State对象，释放内存空间后再重新加载
        变更范围：
           sniper
# 字符集识别转换
comment: 添加编码检测和转换，解决非utf8编码可能引发的客户端断连问题
        变更范围：
           sniper


2021-09-26(agent version: 4.0.5.10，rule version: 40.1.2.5844)
# 性能优化
comment:  优化4.0.5.9版本性能测试CPU占用高问题
        变更范围：
           sniper


2021-11-19(agent version: 4.0.5.14，rule version: 40.1.2.6480)
# 进程去重合并
comment:
           1、按周期合并cmdlie+进程md5相同的进程行为
        变更范围：
           sniper
# 客户端安装包优化
comment:
           1、使用应用包+驱动包模式一个安装包兼容同类CPU架构多系统类型
        变更范围：
           sniper
# 系统兼容
comment:
           1、兼容cenos8.1-1911 4.18.0-147.3.1.el8_1.x86_64
           2、兼容cenos7.1-1503
        变更范围：
           driver


2021-12-2(agent version: 4.0.5.16，rule version: 40.1.2.6571)
# 进程去重合并
comment:  新增数据过滤引擎
           1、按周期合并cmdline+进程md5相同的进程行为
           2、根据威胁中心提供系统命令列表，加白常用系统命令部分进程事件
           3、根据命令合并进程行为（支持正则匹配）
           4、迁移进程行为白名单到数据过滤引擎中
        变更范围：
           sniper


2021-12-13(agent version: 4.0.6.3，rule version: 40.1.2.6620)
# 数据合并优化
comment:
           1、下发进程路径白名单到驱动，在驱动合并数据
           2、下发采集端口到驱动模块，在驱动过滤网络数据减少应用层负载
        变更范围：
           sniper
# 添加异常检测机制
comment: 检测到sniper驱动异常退出后将延迟加载驱动，留出处理反应时间
        变更范围：
           sniper
# 功能优化
comment:
           1、在sniper程序中定时检查并滚动驱动日志
           2、修复suse上客户端名称不正确的问题
        变更范围：
           sniper