手册下载
H3C SecPath SSMS 服务器安全监测系统
用户FAQ
Copyright © 2023新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文档中的信息可能变动,恕不另行通知。
服务端是否有登录失败处理功能?若有,登录失败次数是几次?封停多长时间?
客户端产生的日志占用磁盘,是否有180天保留记录,涉及保存日志的路径在哪?以及最大占用磁盘是多少?之后新增是否是覆盖?是否有磁盘满告警?
是否能监测到非web目录下的webshell以及webshell检测的实现方式?
Web目录的监控这块,如果是几百万的文件或者更大,对服务器性能的损耗是怎样的?
Web应用层扫描是否支持事先录制的脚本?爬虫有两种,一种是没有登录的爬,一种是用户赋予工具登录程序的用户名密码去爬。
能识别哪些数据库?能否将数据库的配置文件也梳理出来?如何实现?
风险的评分是怎么定义的?处理完告警的风险后,怎样量化系统的健康程度?
系统支持哪些类型的应用的弱口令检查?如何发现弱口令的?弱口令在后台数据库中加密存储吗?支持弱口令字典的自定义吗?
服务器端获取Agent上报数据,采用Agent时间戳还是服务器端时间戳?
服务器端与Agent端通信过程是怎么样的?开启的端口80(443)/81/6110/8001/8002/6677/7788/7789/8433,这些端口的具体作用是什么?
服务器安全监测系统所需硬件配置推荐是什么?可支撑多少个Agent节点,目前服务器安全监测系统可支持节点数为50个、100个、500个、1000个,各配置都可使用同一硬件?
导出系统配置, 包括哪些东西?可否将一台设备导出的配置导入到另一台,这样操作会有什么影响?
更改服务器安全监测系统服务端的ip信息,是否会发生授权变化?具体授权绑定哪些信息?授权中设备信息是不断变化的,设备扩容时是否有影响,该值是通过什么得到的,为什么会一直变化?
谷歌浏览器下载数据报表过程中,默认是阻止弹窗的会导致下载不成功,该怎么办?
消息通知>查看更多,全部标为已读勾选后为何所有消息均变为已读?
后门检测>隔离/删除,目前仅支持手动方式吗?有时为何出现隔离/删除失败?
入侵总览>受攻击影响主机top5中,当权重为很小时,不在界面显示吗?
在Linux和Windows下,Agent启动、停止、重启的操作方法是什么?
当Agent发现自身资源占用过大时,例如CPU、内存和文件句柄等,Agent会自杀重启。
Agent程序采用什么语言编写?需要对操作系统的内核、驱动进行什么操作?是否在运行中需要加载动态模块吗?
Agent运行的安全性如何保证?服务端和Agent之间采用什么加密和认证方式?是否服务端可以对Agent下发执行任意命令?
(1) 6110端口系统配置后台默认账号忘记密码处理方法
登录服务器安全监测后台,执行重置密码脚本:
/data/app/titan-patrol-srv/script/setPwd.sh
重置后,账号、密码会被重置为admin/admin。
(2) 81端口与80端口用户管理后台默认账号忘记密码处理方法:
登录服务器安全监测后台,执行重置密码脚本:
python /data/app/www/titan-web/config_scripts/reset_account_pwd.py
注意:H3C X86架构版本80端口与81端口默认账户为[email protected]。
(3) 80端口用户控制台默认账号忘记密码通过邮箱找回方法
1)联系系统管理员,做重置密码处理(管理员进81用户管理后台给该账号重置密码,重置密码会发到账户邮箱中)
对于默认账号[email protected]重置密码的补充说明
80页面账号重置密码,要求该账号的邮箱是有效邮箱才可进行重置操作。 服务器安全监测系统SSMS,默认账号为[email protected],该账号的默认邮箱会置为空,用户需要在账号资料中更新有效邮箱地址。后续该账号重置密码时,就会收到相关邮件。
服务端80端口具有登录失败处理功能,默认登录失败5次,主账号封停15分钟,子账号封停5分钟。在系统配置管理页(http://ServerIP:6110)->访问配置->账号配置中,用户可配置修改具体的数值。
主机发现非内网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组中去,此时用户可以使用主机发现功能。
在安全管理平台(http://ServerIP:80)->系统设置->IP组管理页中,添加内网IP。
客户端日志默认会保留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文件中产生的每条日志内容,使用内置正则规则将匹配到的登录失败记录上报服务器,然后结合阈值规则判断是否为暴力破解行为。大部分的逻辑判断是在服务器设置,客户端只是收集信息。
不支持录制脚本。产品的Web应用识别机制是agent自动分析出所有Web应用,通过指纹识别。和爬虫无关。
产品的告警一定是精确、有效的,不会像其他产品产生大量的警报,可通过设置发送频率来控制邮件告警数量;
在用户管理后台(http://ServerIP:81)->通知配置->通知发送配置页中,设置邮件发送频率。
间隔:邮件发送时间间隔,单位为秒
间隔时间内最大发送数量:单个间隔时间内最多发送的邮件数量,超过部分将不发送
产品支持Windows,Linux所有主流的操作系统与版本。包括:Redhat、CentOS、Ubuntu、Oracle Linux、SUSE、Debian、OpenSUSE、Windows Server、Windows桌面系统等。
产品资产清点的技术优势主要体现在两个方面。
· 数据的获取速度快,定期清点资产数据放入快速缓存,查询数据或使用数据从快速缓存中获取。
· 对于变化较为频繁的数据(例如进程,端口),在定时更新的基础上,用户可以按需主动更新,避免因为本地数据库过于陈旧,检测不准确,也避免传统方案不断监控变化(频繁变化的数据在使用时,实际只需要获取最新的状态),导致的无意义性能消耗。
在梳理范围上,系统可以清点所有账号,包括隐藏,禁用的账号,同时支持账号变化的监控,可以查询在安装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浏览器,推荐版本85.xx.xx.xx以上。
资产清点和风险发现功能模块时间戳皆以服务器侧为主,入侵检测和安全日志的时间戳均以agent侧为主。无论是服务器端还是Agent,建议使用东八区时间,即CST时间。
(1) Agent读取本地配置文件(Linux: /etc/titanagent/conf.conf)中的信息主动连接服务器端,并且采用长连接方式进行TCP通信连接。
(2) 端口开放及作用如下表:
主机名 |
端口 |
协议 |
说明 |
standalone |
80(443) |
TCP |
安全管理控制台,管理员访问(如果考虑安全问题,可以使用ssl,需要提供有效证书) |
standalone |
81 |
TCP |
用户管理后台,管理员访问 |
standalone |
6110 |
TCP |
系统配置管理后台,管理员访问 |
standalone |
8001 |
TCP |
Agent 告警接口,Agent 访问 |
standalone |
8002 |
TCP |
Agent 安装、core dump文件上传接口,Agent访问 |
standalone |
6677 |
TCP |
Selector接口,Agent 访问 |
standalone |
7788,7789 |
TCP |
Agent与服务器端长连接端口,Agent访问 |
服务器安全监测系统所需硬件配置推荐如下:
名称 |
CPU(核) |
内存(GB) |
硬盘(TB) |
支撑Agent数量(个) |
服务器安全监测系统服务端 |
8 |
32 |
1 |
1000 |
目前服务器安全监测系统可支持节点数为50个、100个、500个、1000个,各配置均可使用同一硬件配置。
导出系统配置的内容,在产品页面上有详细说明:主机信息 - 包括主机的 agent 信息、业务组分类信息,主机标签,白名单规则 – 系统各功能的白名单规则,服务配置 - 系统核心服务配置信息。如果两台使用相同客户的授权,可以将一台设备导出的配置导入另外一台,类似于在同一台进行导出和导入。
更改服务端ip地址会导致授权变化。授权绑定的信息包括(但不限于):ip地址,网卡MAC地址。完整的绑定信息属于授权机密信息,不方便透露。授权信息是RSA加密后的密文,相同的明文和密钥,RSA每次加密后的密文都不同,属于正常现象。
设备扩容时,若服务端ip地址、网卡MAC信息等硬件设备发生变化,会影响授权,需要更新授权。
点击“阻止弹窗”为允许即可正常下载,如仍不可下载,则需重启谷歌浏览器。
· 清点原理:Agent清点进程是通过先清点进程PID号,之后再根据pid读取进程的相关信息,信息搜集完成后上报给服务端
· 时效性问题:进程本身是动态的信息,系统中进程可能随时退出,随时创建。当前时刻创建的进程可能过后就发生了变化。
基于上面两点原因,可能会出现前端看到的进程与现在机器上的进程列表有差异,目前进程清点的用途是为了搜集已经安装的服务及相关的应用信息
一般业务使用的服务程序都会持续性的运行,对这类型的进程不会有影响。
Agent升级之后,如果没有升级bash插件,则会出现Agent版本和bash插件版本不一致,此时会导致Agent日志不会上报,需要Agent版本和bash插件版本一致。
“全部标为已读”按钮是全局按钮,使用后所有未读消息均标记为已读。
(1) 隔离/删除功能,目前支持手动方式和自动响应设置,手动方式需要人员先确认再处理,自动方式需要配置自动响应设置。注意有些病毒的处理需要重启服务或进程,可能会影响业务,自动方式请谨慎使用。
(2) 病毒隔离/删除时失败,点击可查看到失败原因,若出现此“可执行文件正在运行”,需人员停止进程后,再手动隔离/删除操作。为避免引起系统不稳定,需要人工手动处理,SSMS上不会强制杀进程。
入侵总览>受攻击影响主机top5中,由于受攻击影响主机比例是根据权重计算,当计算权重很小时统一显示为0。
目前事件采集功能模块仅对主账号开放,子账号还无法使用此功能。
(1) Linux系统环境下,需进入/titan/agent目录,操作命令如下:
1) Agent停止命令:./titanagent -s
2) Agent启动命令:./titanagent –d
3) Agent卸载命令:bash install_agent.sh disclean_agent.sh
(2) Windows系统环境下,打开服务管理器,找到Titan Agent Service for Windows服务,右击该服务,即可对Agent进行启动、停止和重新启动操作,如下图:
(3) Windows系统环境下,打开控制面板下选择卸载程序,找到TitanAgentxxx,并右击选择“卸载/更改(U)”,根据引导卸载信息完成卸载。
agent层都部署在内网中,每个agent服务都监听来自服务器层的命令请求,然后通过agent内部的lua脚本进行不同服务的启动,最多启动三个线程,以开启不同的功能。
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的资源消耗数据:
表1 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支持自动降级和自杀,以保证不额外消耗系统资源:
在用户管理后台(http://ServerIP:81)->Agent管理->Agent管理页中,单击对应账号的“查看”选项,查看该账号的Agent列表。
单击主列表右侧的操作按钮修改单个主机Agent的配置参数,单击"修改资源阈值",填写阈值参数后单击“确定”,修改Agent的降级、自杀限制。
当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自动拉起。
表2 Agent 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权限进行安装和启动。
表3 Agent 执行权限
功能 |
系统依赖项 |
是否依赖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主要采集产品功能所依赖的数据,主要包含如下内容:
表4 Agent 采集数据
功能 |
采集信息 |
说明 |
资产清点 |
硬件配置(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/
图1 目录-1
Agent主目录/titan/agent下文件含义
图2 目录-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
图3 执行命令截图
登录部署Agent的系统,进入C:\Program Files\TitanAgent(默认安装路径,根据实际安装路径进行卸载)目录下,使用管理员权限运行uninst.exe程序,卸载Agent。
图4 卸载Agent-1
图5 卸载Agent-2
图6 卸载Agent-3
产品Agent采用纯C语言编写,保证了资源消耗控制的基础。通过持续对产品的优化,Agent完全绿色化,不需要对操作系统的内核、驱动等关键模块进行操作。在运行过程中,Agent采用脚本化的方式完成相关的数据采集、数据上报互动等任务,无需加载DLL或SO等动态库。
为保护程序完整性和安全性,Agent程序经过了加壳和代码混淆处理,确保黑客无法通过反向工程破解Agent,进而实现恶意操作。产品已通过了国家软件测评中心的安全性检测。在服务端和Agent之间的通讯,采用了RSA密钥交换+AES会话随机密钥的方式进行通讯,确保每次通讯连接是真实可信的。Agent可执行的任务在程序设计时就进行的强制限定,不得执行shutdown、rm等敏感命令,这个限定与服务端无关,即时服务端被恶意控制下发命令,也不可以执行。另外,在平台服务端对于下发的脚本有签名验证机制,当请求下发的脚本没有获得签名,平台将拒绝下发的指令。