手册下载
H3C SecPath SSMS 服务器安全监测系统
用户FAQ
Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文档中的信息可能变动,恕不另行通知。
服务端是否有登录失败处理功能?若有,登录失败次数是几次?封停多长时间?
Agent端产生的日志占用磁盘,是否有180天保留记录,涉及保存日志的路径在哪?以及最大占用磁盘是多少?之后新增是否是覆盖?是否有磁盘满告警?
是否能监测到非web目录下的webshell以及webshell检测的实现方式?
Web目录的监控这块,如果是几百万的文件或者更大,对服务器性能的损耗是怎样的?
Web应用层扫描是否支持事先录制的脚本?爬虫有两种,一种是没有登录的爬,一种是你给这个工具赋予了登录这个程序的用户名密码去爬。
能识别哪些数据库?能否将数据库的配置文件也梳理出来?如何实现?
风险的评分是怎么定义的?处理完告警的风险后,怎样量化系统的健康程度?
系统支持哪些类型的应用的弱口令检查?如何发现弱口令的?弱口令在后台数据库中加密存储吗?支持弱口令字典的自定义吗?
服务器端获取Agent上报数据,采用Agent时间戳还是服务器端时间戳?
服务器端与Agent端通信过程是怎么样的?开启的端口80(443)/81/82/8001/8002/6677/7788,这些端口的具体作用是什么?
服务器安全监测系统所需硬件配置推荐是什么?可支撑多少个Agent节点,目前服务器安全监测系统可支持节点数为50个、100个、500个、1000个,各配置都可使用同一硬件?
导出系统配置, 包括哪些东西?可否将一台设备导出的配置导入到另一台,这样操作会有什么影响?
更改服务器安全监测系统服务端的ip信息,是否会发生授权变化?具体授权绑定哪些信息?授权中设备信息是不断变化的,设备扩容时是否有影响,该值是通过什么得到的,为什么会一直变化?
谷歌浏览器下载数据报表过程中,默认是阻止弹窗的会导致下载不成功,该怎么办?
后门检测>隔离/删除,目前仅支持手动方式吗?有时为何出现隔离/删除失败?
在Linux和Windows下,Agent启动、停止、重启的操作方法是什么?
当Agent发现所在系统负载过高后,自动进行降级,降级后Agent停止所有高消耗资源的操作,保证不影响所在主机的业务运行。
当Agent发现自身资源占用过大时,例如CPU、内存和文件句柄等,Agent会自杀重启。
Agent程序采用什么语言编写?需要对操作系统的内核、驱动进行什么操作?会否在运行中需要加载动态模块吗?
Agent运行的安全性如何保证?服务端和Agent之间采用什么加密和认证方式?是否服务端可以对Agent下发执行任意命令?
规则更新时失败报错“上次规则的结束时间必须大于或等于本次规则的起始时间”?
1、82端口系统配置后台默认账号忘记密码处理方法
登录服务器安全监测后台,执行重置密码脚本:
/data/app/titan-patrol-srv/script/setPwd.sh
重置后,账号、密码会被重置为admin/admin。
2、81端口用户管理后台默认账号忘记密码处理方法:
登录服务器安全监测后台,执行重置密码脚本:
cd /data/app/www/titan-web/user-backend/cli/
/usr/local/php/bin/php back-pwd-reset.php back-username
其中 back-username是后台账号名,脚本返回生成对应账号的新密码。
3、80端口用户控制台默认账号忘记密码处理方法
1)联系系统管理员,做重置密码处理(管理员进81用户管理后台给该账号重置密码,重置密码会发到账户邮箱中)
图1 账号信息设置
对于默认账号[email protected]重置密码的补充说明
80页面账号重置密码,要求该账号的邮箱是有效邮箱才可进行重置操作。服务器安全监测系统SSMS,默认账号为[email protected],用户需要在账号资料中新增其有效邮箱地址。后续该账号重置密码时,就会收到相关邮件。
图2 账号资料设置
服务端具有登录失败处理功能,默认登录失败5次,则会封停15分钟。
主机发现非内网IP不可用。内网IP包括A类地址中:10.0.0.0--10.255.255.255;B类地址中:172.16.0.0--172.31.255.255;C类地址中:192.168.0.0--192.168.255.255;除此之外的IP均为非内网IP。用户可将非内网IP加入自定义内网IP组中去,此时用户可以使用主机发现功能。
Agent端日志默认会保留180天,日志路径:/var/log/titanagent,Agent日志中的备份机制: agent中每个日志文件的最大尺寸的限制是50M(压缩前50M,压缩后大概5M)。最大备份的日志文件的个数是5,超过5个轮转的日志文件时,会删除最久远的日志。 Agent日志文件占用的存储空间最大约为:50M + 5M x 5 = 75M。Agent有磁盘告警邮件。
在系统配置管理后台下重启下系统异常服务重启之后,等待2-3分钟后再点击“重新检查”按钮。
支持自定义目录的webshell扫描和实时监控。webshell检测方式有正则匹配,样本匹配,以及相似度匹配。
Agent进行了严格的资源消耗和扫描时长控制,单次扫描不会超过CPU单核50%、内存500MB、文件句柄1024及20分钟。实时监控是检测web目录里发生变动的文件,如果没有文件发生变动则不会检测。
扫描周期是指每天凌晨的这次扫描,这次扫描主要是为了新安装的Agent 首次扫描web目录,以及上次没有完成的扫描。
对于内网的IP地址如果出现暴力破解的行为之后,系统不会封停,但是会在产品界面提示,需要手动封停。客户可以根据实际情况,可在产品界面手动配置是否封停。
如果是外网IP地址的话,达到规则阈值后会自动进行封停,封停时间为1小时,达到时间后自动解封。另外如果是手动封停的话需要手动解封,不会自动解封。
日志加正则加阈值规则:读取/var/log/secure文件中产生的每条日志内容,使用内置正则规则将匹配到的登录失败记录上报服务器,然后结合阈值规则判断是否为暴力破解行为。我们大部分的逻辑判断是在服务器做的,客户端只是收集信息。
我们的指纹识别不需要扫描,因此也不需要爬虫。我们的agent能自动分析出所有的website,以及website对于的物理路径,然后通过指纹直接分析出所有的web应用。
产品的告警一定是精确、有效的,不会像其它产品产生大量的警报,可通过设置发送频率来控制邮件告警数量。
产品支持Windows,Linux所有主流的操作系统与版本。包括:Redhat、CentOS、Ubuntu、Oracle Linux、SUSE、Debian、OpenSUSE、Windows Server、Windows桌面系统等。
产品资产清点的技术优势主要体现在两个方面。
(1)数据的获取速度快,定期清点资产数据放入快速缓存,查询数据或使用数据从快速缓存中获取。
(2)对于变化较为频繁的数据(例如进程,端口),在定时更新的基础上,用户可以按需主动更新,避免因为本地数据库过于陈旧,检测不准确,也避免传统方案不断监控变化(频繁变化的数据在使用时,实际只需要获取最新的状态),导致的无意义性能消耗。
在梳理范围上,系统可以清点所有账号,包括隐藏,禁用的账号,同时支持账号变化的监控,可以查询在安装Agent后,新增,修改,删除的账号数据;在梳理的内容上,系统可清点每个账号的如下关键信息:账号状态,gid,uid,账号shell,Home目录,登录相关信息(账号登录性,最后登录时间,终端,来源IP),sudo权限信息,key登录相关信息,密码相关信息(密码期限,密码修改天数,密码告警,可修改天数)等各类账号信息。
支持约200余类主流应用的识别,包括中间件、数据库、大数据组件、Web应用等资产,如:Nginx,Apache,JBoss,Mysql,Memcache,Redis,HBase等。
目前版本可识别如下数据库:MySQL、Redis、Oracle、MongoDB、Memcache、PostgreSQL、HBase、SQL Server。可以清点数据库的配置文件;实现原理:首先数据库的运行进程特征,识别出系统正在运行的数据库;而后判断数据库的运行主进程,获得数据库的运行路径,并进一步找到数据库的安装路径;最后根据不同数据库的特点,判断出配置文件所在的路径。
在产品风险发现模块中,定义安全评分来量化系统的健康程度,安全评分总分为100分,分数越高,表示系统越健康。
(1)评分范围
安全补丁、漏洞检测、弱密码、应用风险、系统风险、账号风险。
(2)评分定义
根据安全评分的值,我们将系统的健康程度量化为A-E 5个级别。评级越低,则认为系统中存在的问题越严重。
安全评级为A,安全评分为90-100
安全评级为B, 安全评分为80-89
安全评级为C, 安全评分为70-79
安全评级为D, 安全评分为60-69
安全评级为E,安全评分为60分以下
(3)评分方法
先计算单台主机的安全评分,然后再根据单台主机的安全评分,计算系统的平均安全评分。
系统支持精准检测十余种应用弱密码,包括linux、windows系统弱口令以及用户常用应用弱口令,如 MySQL、Redis、OpenVPN 等。弱口令检测方法是通过密码哈希碰撞方式进行,不对业务服务器造成性能压力及触发不必要的安全设备告警。另外,系统会监控弱口令的变化,识别弱口令后会对没有发生变化的离线弱口令文件哈希入库,如口令未发生新的变更,则不再重复对弱口令进行检测,通过分布式的 Agent 对全量主机的弱口令检测,可极大的提高检测效率。为防止黑客的数据库攻击,弱口令在后台数据库中均作了加密处理。结合用户特征,系统支持用户自定义弱口令字典以及组合弱口令字典,能有效帮助用户预防被黑客定向破译的风险。
漏洞的检测方式为版本比对和POC验证两种方式。
(1)版本比对:通过获取应用的包安装版本和进程版本,将其与应用的漏洞版本进行比对。
(2)POC验证:即对漏洞逐个进行分析,根据漏洞原理编写对应的漏洞验证脚本,逐个漏洞进行检测。
产品通过bash插件的支持,可以实时监控用户主机上所有的命令操作,从而可以对这些操作进行审计。系统内置有一套恶意操作命令的规则库,通过正则匹配可以发现实时发现用户的恶意操作并进行告警。规则库持续进行更新和优化。同时,系统支持用户自定义可疑操作规则进行检测。
推荐使用Google Chrome浏览器。
资产清点和风险发现功能模块时间戳皆以服务器侧为主,入侵检测和安全日志的时间戳均以agent侧为主。无论是服务器端还是Agent,建议使用使用东八区时间,即CST时间。
(1) Agent读取本地配置文件(Linux: /etc/titanagent/conf.conf)中的信息主动连接服务器端,并且采用长连接方式进行TCP通信连接。
(2) 端口开放及作用如下表:
表1 端口开放表
端口 |
协议 |
说明 |
80(443) |
TCP |
安全管理控制台,管理员访问(如果考虑安全问题,可以使用ssl,需要提供有效证书) |
81 |
TCP |
用户管理后台,管理员访问 |
82 |
TCP |
系统配置管理后台,管理员访问 |
8001 |
TCP |
Agent 告警接口,Agent 访问 |
8002 |
TCP |
Agent 安装、core dump文件上传接口,Agent访问 |
6677 |
TCP |
Selector接口,Agent 访问 |
7788 |
TCP |
Agent与服务器端长连接端口,Agent访问 |
服务器安全监测系统所需硬件配置推荐如下:
表2 硬件配置表
名称 |
CPU(核) |
内存(GB) |
硬盘(TB) |
支撑Agent数量(个) |
服务器安全监测系统服务端 |
8 |
32 |
1 |
1000 |
目前服务器安全监测系统可支持节点数为50个、100个、500个、1000个,各配置均可使用同一硬件配置。
导出系统配置的内容,在产品页面上有详细说明:主机信息 - 包括主机的 agent 信息、业务组分类信息,主机标签,白名单规则 – 用户设置的系统各功能的白名单规则,服务配置 - 系统核心服务配置信息。如果两台使用相同客户的授权,可以将一台设备导出的配置导入另外一台,类似于在同一台进行导出和导入。
更改服务端ip地址会导致授权变化。授权绑定的信息包括(但不限于):ip地址,网卡MAC地址。完整的绑定信息属于授权机密信息,不方便透露。授权信息是RSA加密后的密文,相同的明文和密钥,RSA每次加密后的密文都不同,属于正常现象。
点击“阻止弹窗”为允许即可正常下载,如仍不可下载,则需重启谷歌浏览器。
1. 清点原理:Agent清点进程是通过先清点进程PID号,之后再根据pid读取进程的相关信息,信息搜集完成后上报给服务端
2. 时效性问题:进程本身是动态的信息,系统中进程可能随时退出,随时创建。当前时刻创建的进程可能过后就发生了变化。
基于上面两点原因,可能会出现前端看到的进程与现在机器上的进程列表有差异,目前进程清点的用途是为了搜集已经安装的服务及相关的应用信息
一般业务使用的服务程序都会持续性的运行,对这类型的进程不会有影响。
Agent升级之后,如果没有升级bash插件,则会出现Agent版本和bash插件版本不一致,此时会导致Agent日志不会上报,需要Agent版本和bash插件版本一致。
1)隔离/删除功能,仅作为手动方式提供,需要人员先确认,再处理。因为有些病毒的处理需要重启服务或进程,可能会影响业务。因此也不会做成自动隔离删除
2)病毒隔离/删除时失败,点击可查看到失败原因,若出现此“可执行文件正在运行”,需人员停止进程后,再手动隔离/删除操作。为避免引起系统不稳定,需要人工手动处理,SSMS上不会强制杀进程。
图3 手工隔离
不支持,目前仅支持单网卡部署,此网卡既做管理又做业务。
(1) Linux系统环境下,需进入/titan/agent目录,操作命令如下:
(2) Agent停止命令:./titanagent -s
(3) Agent启动命令:./titanagent –d
(4) Agent卸载命令:bash install_agent.sh disclean_agent.sh
(5) Windows系统环境下,打开服务管理器,找到Titan Agent Service for Windows服务,右击该服务,即可对Agent进行启动、停止和重新启动操作,如下图:
图4 执行操作
(6) Windows系统环境下,打开控制面板下选择卸载程序,找到TitanAgentXXX,并右击选择“卸载/更改(U)”,根据引导卸载信息完成卸载。
图5 卸载
agent层都部署在内网中,每个agent服务都监听来自服务器层的命令请求,然后通过agent内部的lua脚本进行不同服务的启动,最多启动三个线程,以开启不同的功能。
表3 Agent支持Linux版本
系统类型 |
版本号 |
内核版本 |
备注 |
Oracle |
Oracle Linux Server Release 5.7 |
2.6.32-200.13.1.el5uek |
|
Oracle Linux Server Release 5.10 |
2.6.39-400.209.1.el5uek |
|
|
Oracle Linux Server Release 5.11 |
2.6.39-400.215.10.el5uek |
|
|
Oracle Linux Server Release 6.0 |
2.6.32-100.28.5.el6.x86_64 |
|
|
Oracle Linux Server Release 6.4 |
2.6.32-358.el6.x86_64 |
|
|
Oracle Linux Server Release 6.5 |
2.6.32-431.el6.x86_64 |
|
|
Oracle Linux Server Release 6.6 |
3.8.13-44.1.1.el6uek.x86_64 |
|
|
Oracle Linux Server Release 6.7 |
2.6.32-573.el6.x86_64 |
|
|
Oracle Linux Server Release 6.8 |
4.1.12-37.4.1.el6uek.x86_64 |
|
|
Oracle Linux Server Release 7.0 |
3.10.0-123.el7.x86_64 |
|
|
Oracle Linux Server Release 7.2 |
3.8.13-98.7.1.el7uek.x86_64 |
|
|
Oracle Linux Server Release 7.3 |
4.1.12-61.1.18.el7uek.x86_64 |
|
|
Red Hat |
Red Hat Enterprise Linux 5.1 |
2.6.18-53.el5 |
不支持进程提权和反弹shell |
Red Hat Enterprise Linux 5.2 |
2.6.18-92.el5 |
|
|
Red Hat Enterprise Linux 5.4 |
2.6.18-164.el5 |
|
|
Red Hat Enterprise Linux 5.5 |
2.6.18-194.el5 |
|
|
Red Hat Enterprise Linux 5.6 |
2.6.18-238.el5 |
|
|
Red Hat Enterprise Linux 5.7 |
2.6.18-274.el5 |
|
|
Red Hat Enterprise Linux 5.8 |
2.6.18-308.el5 |
|
|
Red Hat Enterprise Linux 5.9 |
2.6.18-348.el5 |
|
|
Red Hat Enterprise Linux 5.10 |
2.6.18-371.el5 |
|
|
Red Hat Enterprise Linux 5.11 |
2.6.18-398.el5 |
|
|
Red Hat Enterprise Linux 6.0 |
2.6.32-71.el6.x86_64 |
|
|
Red Hat Enterprise Linux 6.1 |
2.6.32-131.0.15.el6.x86_64 |
|
|
Red Hat Enterprise Linux 6.3 |
2.6.32-279.el6.x86_64 |
|
|
Red Hat Enterprise Linux 6.4 |
2.6.32-358.el6.x86_64 |
|
|
Red Hat Enterprise Linux 6.5 |
2.6.32-431.el6.x86_64 |
|
|
Red Hat Enterprise Linux 6.6 |
2.6.32-504.el6.x86_64 |
|
|
Red Hat Enterprise Linux 6.7 |
2.6.32-573.el6.x86_64 |
|
|
Red Hat Enterprise Linux 6.8 |
2.6.32-642.el6.x86_64 |
|
|
Red Hat Enterprise Linux 7.0 |
3.10.0-123.el7.x86_64 |
|
|
Red Hat Enterprise Linux 7.1 |
3.10.0-229.el7.x86_64 |
|
|
Red Hat Enterprise Linux 7.2 |
3.10.0-327.el7.x86_64 |
|
|
SUSE |
SUSE Linux Enterprise Server 11 |
3.0.76-0.11-default |
|
SUSE Linux Enterprise Server 12 |
|
|
|
CentOS |
CentOS 5.0 |
2.6.18-8.el5 |
不支持进程提权和反弹shell |
CentOS 5.1 |
2.6.18-53.el5 |
不支持进程提权和反弹shell |
|
CentOS 5.4 |
2.6.18-164.el5 |
|
|
CentOS 5.7 |
2.6.18-274.el5 |
|
|
CentOS 5.10 |
2.6.18-371.el5 |
|
|
CentOS 5.11 |
2.6.18-398.el5 |
|
|
CentOS 6.0 |
2.6.32-71.el6.x86_64 |
|
|
CentOS 6.2 |
2.6.32-220.el6.x86_64 |
|
|
CentOS 6.3 |
2.6.32-279.el6.x86_64 |
|
|
CentOS 6.4 |
2.6.32-358.el6.x86_64 |
|
|
CentOS 6.5 |
2.6.32-431.el6.x86_64 |
|
|
CentOS 6.6 |
2.6.32-504.el6.x86_64 |
|
|
CentOS 6.7 |
2.6.32-573.el6.x86_64 |
|
|
CentOS 6.8 |
2.6.32-642.el6.x86_64 |
|
|
CentOS 7.0 |
3.10.0-123.el7.x86_64 |
|
|
CentOS 7.1 |
3.10.0-229.el7.x86_64 |
|
|
CentOS 7.2 |
3.10.0-327.el7.x86_64 |
|
|
Ubuntu |
ubuntu 10 |
|
|
ubuntu 11 |
|
|
|
ubuntu 12 |
|
|
|
ubuntu 13 |
|
|
|
ubuntu 14 |
|
|
|
ubuntu 15 |
|
|
|
ubuntu 16 |
|
|
|
Debian |
Debian7 |
|
已测试:Debian 7.11 |
Debian8 |
|
已测试:Debian 8.5, Debian 8.9 |
|
Debian9 |
|
已测试:Debian 9.1 |
|
amazon |
Amazon Linux AMI release 2017 |
|
不支持异常登录、暴力破解、Audit相关进程提权、反弹shell、异常文件读写、redis写key |
Amazon Linux AMI release 2018 |
|
|
|
OpenSuse |
10.2 |
|
|
11 |
|
|
|
12 |
|
|
|
13.2 |
|
|
|
Alibaba |
Alibaba Cloud Enterprise Linux Server release 17.01.2 |
|
不支持软件漏洞、异常登录、暴力破解 |
表4 Agent支持Windows版本
系统类型 |
版本号 |
备注 |
服务器版本 |
Windows Server 2008 |
|
Windows Server 2008 R2 |
|
|
Windows Server 2012 |
|
|
Windows Server 2012 R2 |
|
|
Windows Server 2016 |
|
|
桌面版本 |
Windows Vista |
|
Windows 7 |
|
|
Windows 8 |
|
|
Windows 8.1 |
|
|
Windows 10 |
|
Agent对所在主机资源消耗严格控制:
1. CPU在每天固定时间段满业务加载的情况下平均使用率不超过5%
2. 内存不超过500M
3. 硬盘最高存储空间不超过200M
4. agent的cpu占用率指的单核cpu的占用率。
5 agent不会因为进程活动越频繁导致消耗更多的资源, Agent有实时监控功能,系统中进程创建行为越频繁,会导致agent占用的cpu越高。但是agent对自身的cpu占用有上限限制(即单核的50%)
日常闲时(agent在不执行采集任务)Agent CPU使用率在1%以下,内存40M以下。
以下为常规功能测试时Agent的资源消耗数据:
表5 Agent资源消耗数据
功能 |
CPU占用 |
内存占用 |
耗时 |
备注 |
Agent待机 |
0.30% |
<40M |
NA |
Agent静默状态,仅保持和服务器连接 |
web配置扫描 |
5% |
<40M |
30s |
20+ nginx站点配置 |
进程扫描 |
23% |
<40M |
32s |
100+进程数量 |
端口清点 |
4% |
<40M |
30s |
20+端口 |
基线检查 |
17% |
<40M |
15s |
329条基线规则全部扫描 |
软件漏洞扫描 |
3% |
<40M |
20s |
扫描1000+软件包安装 |
业务进程影响 |
6% |
<40M |
34s |
100+进程数量 |
web后门扫描 |
50% |
90M |
98s |
扫描4500+文件,500个目录,扫描出244个webshell |
注:1、业务进程影响主要指的是安全补丁功能下的业务进程影响
Agent支持自动降级和自杀,以保证不额外消耗系统资源:
loadavg(系统平均负载):系统平均负载指的是运行队列平均长度,这里指的是15分钟内系统平均负载。
系统loadavg一般情况下小于1,表示系统可以正常处理运行队列的消息平稳的运行。
系统loadavg等于1时,表示运行队列已经慢了,系统再满负荷运行,超过这个值,系统就不在最佳状态了,你要动手干预了。
系统loadavg大于1时,表示运行队列已满,并且后面还有很多堆积的未进队列的消息,就表明你的系统有很严重的问题。
Agent降级机制的作用:在系统整体负载持续偏高的情况下,通过将Agent降级可以释放一部分系统资源(包括CPU和内存),避免影响客户的业务。
Agent降级机制触发的条件:
(1) Agent每半分钟检查一次loadavg_5参数值(5分钟内CPU平均负载),以及/proc/stat中procs_running参数值;
(2) 如果loadavg_5超过CPU核数的5倍,同时procs_running超过5,定义为系统异常,同时系统异常的计数器加一;
(3) 如果系统异常计数器累计到达5,Agent进行降级处理(即每隔半分钟,连续检查5次,系统状况都是异常的情况,也就是说系统负载高的情况持续了至少2.5分钟)。
Agent降级机制触发的结果:停止Agent的所有工作只保持基本连接并等待处理。
Agent降级后的恢复:
(1) Agent降级之后,固定等待4小时;
(2) Agent等待4小时之后,每半分钟检查一次系统状况是否达到恢复Agent的条件 (Agent恢复升级的条件:当前系统状况不满足Agent降级的条件);
(3) 如果Agent满足恢复条件,Agent调用shell命令"./titanagent -s"自杀,然后由titan_monitor在两分钟之内重新启动Agent。
排查方式:当Agent频繁降级时,先根据sys.log中的日志打印确定降级的原因,windows机器在目录C:\Program Files\TitanAgent中,linux机器在目录/var/log/titanagent/sys.log中。
Agent降级阈值默认值:
Linux agent:物理内存可用量/页面文件可用量,即memory_available_threshold,默认值为200MB
Windows agent:
系统处理器队列长度,即processor_queue_threshold,默认值为15
物理内存可用量/页面文件可用量,即memory_available_threshold,默认值为200MB
磁盘队列长度,即disk_queue_threshold,默认值为10
举例
以磁盘队列数值较多导致agent降级举例:
SSMS中agent管理中查看windows主机运行级别为降级。
图6 agent管理
分析其对应sys.log日志查看降级日志信息。
图7 日志查看
“控制面板>管理工具>性能监视器”中,查看下图中标注:
图8 性能监控
注意:手动界面调整运行级别,agent服务会停止,需手动在客户端中重启agent服务。
在agent出现如下情况时,会进行自杀重启处理:
agent超过10分钟没有系统日志(/var/log/titanagent/sys.log)输出;
sys.log 指的是agent运行过程中的日志,如果这个日志有异常,说明agent系统本身异常。
agent超过10分钟没有网络日志(/var/log/titanagent/net_monitor.log)输出;
net_monitor.log 指的是agent消息机制正常运行的日志,如果这个日志有异常,说明agent系统消息处理模块出现了问题。
agent占用物理内存超过500MB;
agent占用cpu超过150%;
agent有cpu限制,默认是单核的50%,但是有可能在执行业务或者系统异常的情况下,cpu瞬时值可能会很高,当agent检查到cpu超过150%时,认为自身处于异常状态,会做自杀处理,防止影响客户业务。
打开的句柄数超过1024。
以上数值,均可在/etc/titanagent/agent_update.sh中自定义,监控频率为每30秒一次
TitanAgent进程启动时,启动TitanMonitor进程。TitanAgent进程的日志位于/var/log/titanagent/sys.log,TitanMonitor进程的日志位于/var/log/titanagent/monitor.log。
1. 运行过程中,如果TitanAgent进程检测到TitanMonitor进程异常退出,退出TitanAgent。
2. 如果TitanMonitor进程检测到TitanAgent进程退出,退出TitanMonitor。
3. TitanAgent进程内部线程检测TitanAgent自己的cpu、内存、句柄。如果cpu>单核150%,内存>500M,句柄>1024,退出TitanAgent。
4. TitanAgent进程每60s更新/var/log/titanagent/exception.log的修改时间,如果TitanMonitor进程检测到exception.log两分钟未更新,杀死TitanAgent进程。
5. 如果TitanMonitor检测到TitanAgent进程或TitanAgent的子进程 CPU超过150%,杀死TitanAgent进程或TitanAgent的子进程。
6. TitanMonitor进程每隔2min检测一次/var/log/titanagent/sys.log,如果/var/log/titanagent/sys.log持续10min未更新,杀死TitanAgent进程。
7. 计划任务每5min检测TitanAgent进程及TitanAgent子进程,如果内存或句柄超过限制,杀死TitanAgent进程及子进程。
系统crontab定时任务每隔2分钟执行一次bash脚本检查Agent状态,如果Agent进程不存在,bash脚本会将Agent自动拉起。
Crontab内容如下:
*/2 * * * * /bin/bash /etc/titanagent/agent_monitor.sh >> /var/log/titanagent/edog.o.log 2>> /var/log/titanagent/edog.e.log
系统定时任务每隔5分钟检查一次Agent状态,如果Agent进程不存在,定时任务会将Agent自动拉起。
表6 Agen Linux计划任务说明
开始执行时间 |
执行频率 |
执行命令 |
作用 |
说明 |
0~59之间的随机数 |
每个小时一次 |
/bin/bash /etc/titanagent/agent_update.sh » /var/log/titanagent/check.o.log 2» /var/log/titanagent/check.e.log |
向服务器汇报Agent存活状态,同时处理服务器返回的是否停止Agent的命令 |
由于需要与服务器端交互,为避免服务器发生瞬时高并发请求,每个Agent开始执行这条任务的分钟数由安装脚本随机生成(介于0~59之间) |
每2分钟 |
每2分钟一次 |
/bin/bash /etc/titanagent/agent_update_exception.sh » /var/log/titanagent/check.o.log 2» /var/log/titanagent/check.e.log |
检查运作中的Agent是否存在异常:/var/log/titanagent/下系统日志、网络日志和异常日志 |
|
每2分钟 |
每2分钟一次 |
/bin/bash /etc/titanagent/agent_monitor.sh » /var/log/titanagent/edog.o.log 2» /var/log/titanagent/edog.e.log |
检查Agent是否正在运行,如果没有运行就启动Agent |
由于很多系统信息收集和系统监控行为都要求root权限,所以Agent必须以root权限进行安装和启动。
表7 Agen 执行权限
功能 |
系统依赖项 |
是否依赖root权限 |
说明 |
主机资产 |
/dev/mem |
是 |
读取SMBIOS系统信息 |
进程端口 |
访问其它用户的进程信息 |
是 |
获取监听端口对应的进程信息 |
系统账号 |
/home/user/.ssh/authorized_keys,/etc/sudoers |
是 |
统计账号key使用情况,统计账号是否具有root权限等 |
软件应用(SSH应用) |
/home/user/.ssh |
是 |
清点ssh key存放路径 |
启动服务 |
/etc/cron.d |
是 |
清点cron计划任务 |
漏洞检测 |
风险检测依赖资产清点结果 |
是 |
例如账号风险依赖系统账号清点 |
弱密码检查 |
/etc/shadow |
是 |
弱口令检测需要访问 |
应用风险 |
风险检测依赖应用配置文件读取 |
是 |
例如sshd风险检测依赖/etc/ssh/sshd_config文件 |
系统风险 |
风险检测依赖系统配置文件读取 |
是 |
例如grub风险检测依赖/boot/grub/grub.conf文件 |
账号风险 |
风险检测依赖账号清点结果 |
是 |
|
暴力破解 |
/var/log/secure |
是 |
获取登录信息 |
异常登录 |
/var/log/secure |
是 |
获取登录信息 |
反弹shell |
Linux audit |
是 |
需要root权限使用linux audit功能 |
本地提权 |
Linux audit |
是 |
需要root权限使用linux audit功能 |
系统后门 |
直接磁盘访问 |
是 |
检测bootkit需要访问MBR数据 |
合规基线 |
各类配置文件,例如/etc/ssh/sshd_config |
是 |
需要root权限访问各类配置文件 |
操作审计 |
/bin/bash替换 |
是 |
替换/bin/bash文件 |
登录日志 |
/var/log/secure |
是 |
获取登录信息 |
Agent启动之后,主动连接服务器,然后监听来自服务端的命令请求。在收到服务端下发的命令之后,通过agent内部的lua脚本进行不同服务的启动,最多启动4个线程并发执行lua脚本,以开启不同的功能。
服务端给Agent下发的一系列任务都可以通过crontab的形式在产品后台进行配置,目前默认轮询任务触发时间为凌晨6点左右,每间隔24小时执行一次。
有些任务可以作为例行化,有些可以作为触发式,都是通过服务器端将任务推送给agent。
Agent日常正常运行的心跳数据、监控自身状态的数据以及资产清点数据传输率在每秒1kb~2kb,传输峰值10kbps左右,平均每天每台agent传输6MB左右,对于业务情况复杂的服务器,大概在20MB左右,传输数据均为安全监测信息,当agent数量超过20台时,会以每20台一批的方式分批传输,不会造成网络拥堵。传输通过Agent端与服务器端的TCP长连接进行AES-256加密后传输。
Agent主要采集产品功能所依赖的数据,主要包含如下内容:
表8 Agen 采集数据
功能 |
采集信息 |
说明 |
资产清点 |
硬件配置(CPU、内存、网卡、磁盘信息)、系统账号、运行进程、监听端口、软件应用、Web站点、Web框架、数据库、软件安装包、启动服务、计划任务、环境变量、内核模块 |
采集时间为凌晨6点左右,每间隔24小时执行一次。 也可以手动下发采集命令。 Agent收到命令后执行对应的功能模块脚本来获取信息。 |
风险发现 |
安全补丁、漏洞检测信息、弱口令、系统/账号/应用风险信息 |
|
合规基线 |
系统和应用配置合规检查信息 |
用户自定义配置执行时间 |
入侵检测 |
暴力破解、异常登录、入侵行为信息(反弹shell/本地提权)、系统后门、蜜罐连接信息、操作审计信息 |
通过inotify监控文件来获取登录信息。 通过NETLINK机制获取系统上进程创建信息。 通过产品自己的bash,可以审计用户操作。 |
Agent与服务端使用加密方式进行安全通信:第一阶段,Agent与服务端利用RSA非对称加密方式进行登录认证(密钥长度2048位),同时协商后续数据通信使用的密钥;第二阶段,Agent与服务端利用第一阶段协商得到的密钥进行AES-256对称加密通信。
每次Agent与服务端的会话,都会使用通过协商而得到的不同的密钥。
Agent客户端的每个不同企业用户(账号)都对应不同的私钥。
Agent反调试:Agent的两个进程titanagent和titan_monitor利用加壳技术防止通过GDB工具进行调试
Agent抗逆向:Agent的两个进程文件(titanagent和titan_monitor)利用加壳技术,防止被反汇编工具进行解析,同时无法被二进制解析工具strings, file, nm, readelf逆向而导致部分源代码暴露。
Agent共享库防篡改:Agent进程所加载的共享库使用了数字签名进行保护,如果被修改,Agent会拒绝加载共享库。
Agent升级机制:Agent的程序升级包使用数字签名进行保护,防止升级服务器DNS被劫持,或者服务端上的Agent升级程序包被恶意修改。
安装Agent之后会产生三个主目录
Agent主程序目录/titan/agent/,Agent配置文件目录/etc/titanagent/,Agent 日志文件目录/var/log/titanagent/
图9 目录-1
Agent主目录/titan/agent下文件含义
图10 目录-2
titanagent:Agent主程序
agent_update.sh: 向服务器汇报Agent存活状态,同时处理服务器返回的是否停止Agent的命令
agent_monitor .sh: 检查Agent是否正在运行,如果没有运行就启动Agent
titan_monitor:Agent监控程序,(监控运行状态,资源限制)
install_agent.sh:安装脚本
plugin:插件目录
data :lua脚本等数据目录,script.db存于此处
本方式在客户端Agent在线及离线均生效。
使用账号密码,登录已安装Agent的主机,以root权限依次执行以下命令即可卸载Agent:
/titan/agent/titanagent -s
bash /titan/agent/install_agent.sh disclean
图11 执行命令截图
登录部署Agent的系统,进入C:\Program Files\TitanAgent(默认安装路径,根据实际安装路径进行卸载)目录下,使用管理员权限运行uninst.exe程序,卸载Agent。
图12 卸载Agent-1
图13 卸载Agent-2
图14 卸载Agent-3
产品Agent采用纯C语言编写,保证了资源消耗控制的基础。通过持续对产品的优化,Agent完全绿色化,不需要对操作系统的内核、驱动等关键模块进行操作。在运行过程中,Agent采用脚本化的方式完成相关的数据采集、数据上报互动等任务,无需加载DLL或SO等动态库。
为保护程序完整性和安全性,Agent程序经过了加壳和代码混淆处理,确保黑客无法通过反向工程破解Agent,进而实现恶意操作。产品已通过了国家软件测评中心的安全性检测。在服务端和Agent之间的通讯,采用了RSA密钥交换+AES会话随机密钥的方式进行通讯,确保每次通讯连接是真实可信的。Agent可执行的任务在程序设计时就进行的强制限定,不得执行shutdown、rm等敏感命令,这个限定与服务端无关,即时服务端被恶意控制下发命令,也不可以执行。另外,在平台服务端对于下发的脚本有签名验证机制,当请求下发的脚本没有获得签名,平台将拒绝下发的指令。
当更新规则包titan-rule-h3c-v3.4.0-20211214113727-SecPathSSMS.zip或titan-rule-h3c-v3.4.0-20220209152159-SSMS.zip中偶发性出现“恶意软件检测黑名单”更新失败,重新更新也失败问题时。
处理方式:
首先确认更新失败处规则的规则版本:
1、为v3.4.0-20200810121103/v3.4.0-20210120144833时,请先重新更新规则titan-rule-h3c-v3.4.0-20210624163733-SecPathSSMS.zip,再更新增量规则包titan-rule-h3c-v3.4.0-20220210145347-SSMS.zip。
注意:更新规则titan-rule-h3c-v3.4.0-20210624163733-SecPathSSMS.zip时有部分规则失败,查看右下角控制台失败原因为“最低版本不能下降”时,可不用处理,直接升级增量规则包titan-rule-h3c-v3.4.0-20220210145347-SSMS.zip即可。
图15 设置示意图
2、v3.4.0-20210624163733/ v3.4.0-20211214113727/ v3.4.0-20220209152159时,直接更新增量规则包titan-rule-h3c-v3.4.0-20220210145347-SSMS.zip。
注:若其它规则含报错,可用相同方式处理。
图16 设置示意图
该问题由于增量规则包未按照限制要求错误更新导致。如增量规则包titan-rule-h3c-v3.4.0-20220210145347-SSMS在非v3.4.0-20210624163733 / v3.4.0-20211214113727 / v3.4.0-20220209152159规则版本上更新。
处理方式:请先重新更新规则titan-rule-h3c-v3.4.0-20210624163733-SecPathSSMS.zip,再更新增量规则包titan-rule-h3c-v3.4.0-20220210145347-SSMS.zip。
注:其它增量规则包处理方式和该方式类型,请先更新最新的全量规则包,在全量规则包基础上再更新对应的增量规则包。