奇安信安全设备自动化巡检机器人开发实践 1. 项目背景与需求分析手搓奇安信安全设备巡检机器人这个项目名称背后反映的是当前企业安全运维中的一个普遍痛点——如何高效完成大批量安全设备的日常巡检工作。作为国内头部安全厂商奇安信的天擎终端安全系统、天眼威胁检测系统等产品在企业环境中部署广泛但随之而来的是运维人员需要面对的设备数量激增问题。在实际工作中安全运维团队通常需要每天检查数百台终端上的天擎客户端运行状态定期验证天眼设备的日志采集完整性监控浏览器等终端应用的安全策略生效情况确保所有设备策略同步更新传统的人工巡检方式存在三大瓶颈效率低下人工逐台检查耗时耗力200台设备完整巡检可能需要4-6小时标准不一不同运维人员的检查项和判断标准存在差异响应滞后问题发现往往存在时间延迟错过最佳处置窗口2. 技术方案设计思路2.1 核心功能规划基于上述痛点我们设计的巡检机器人需要实现以下核心能力设备状态采集层通过WMI/PowerShell获取终端基础信息CPU、内存、磁盘调用天擎客户端本地API查询防护状态解析天眼设备的syslog日志流捕获浏览器进程的安全策略加载情况自动化巡检层预设检查项模板CPU利用率阈值、病毒库版本号等支持定时触发和手动立即执行两种模式异常状态自动分级警告/严重/致命结果处理层生成可视化巡检报告HTML/PDF微信/邮件实时告警推送自动创建运维工单对接OA系统2.2 关键技术选型经过对比测试最终技术栈确定如下开发语言Python 3.8丰富的安全设备对接库Go高并发采集场景核心框架Flask轻量级Web控制台Celery分布式任务调度数据库PostgreSQL结构化巡检数据存储Redis实时状态缓存特别注意事项天擎客户端v6.0版本开始强化了API调用鉴权天眼设备需要预先配置syslog转发策略浏览器策略检查需处理沙箱环境限制3. 具体实现过程3.1 环境准备与依赖安装建议使用Python虚拟环境隔离依赖python -m venv qianxin_robot source qianxin_robot/bin/activate # Linux/Mac pip install -r requirements.txt关键依赖库说明psutil跨平台系统信息采集requestsREST API调用paramikoSSH设备管理openpyxlExcel报告生成3.2 天擎客户端状态检查实现通过分析天擎的本地服务接口我们发现其状态数据存储在C:\Program Files\Qianxin\TianQing\status.db使用SQLite查询示例import sqlite3 def get_tianqing_status(): conn sqlite3.connect(rC:\Program Files\Qianxin\TianQing\status.db) cursor conn.cursor() cursor.execute(SELECT * FROM agent_status) return cursor.fetchall()重要提示天擎v7.2版本开始对该数据库进行了加密需要先调用QAXDecrypt.dll解密3.3 天眼设备日志检查通过配置syslog转发我们可以实时获取设备状态import syslog_server class TianYanHandler: def handle_log(self, log): if detection_rate in log: rate float(log.split()[1]) if rate 0.95: alert(检测率下降, log)建议检查的关键指标日志接收延迟60秒规则加载成功率99%检测事件吞吐量匹配设备规格3.4 浏览器策略验证通过Selenium自动化测试验证策略生效from selenium import webdriver options webdriver.ChromeOptions() options.add_argument(--proxy-server127.0.0.1:8080) driver webdriver.Chrome(optionsoptions) try: driver.get(http://testmalware.com) assert Blocked by Qianxin in driver.page_source finally: driver.quit()4. 典型问题排查指南4.1 天擎客户端无响应现象采集超时或返回空数据排查步骤检查QianxinTianQing服务状态Get-Service QianxinTianQing | Select Status验证本地API端口默认20111telnet 127.0.0.1 20111检查客户端版本兼容性HKEY_LOCAL_MACHINE\SOFTWARE\Qianxin\TianQing\Version4.2 天眼日志中断常见原因网络ACL阻断514端口天眼设备磁盘写满syslog服务异常应急处理# 临时启用TCP传输 logger -n 天眼IP -P 514 -T test message5. 巡检报告优化建议可视化方案对比方案优点缺点适用场景Excel兼容性好数据量大时卡顿小型环境Power BI交互性强需要额外授权常态化监控Grafana实时性好学习成本高运维中心推荐指标看板终端防护覆盖率98%策略同步延迟5分钟病毒库过期设备数3台高风险终端TOP10列表6. 安全注意事项采集账号必须遵循最小权限原则巡检结果数据需要加密存储API调用频率控制在5次/分钟以下敏感配置信息使用Vault等工具管理实际部署中发现当天擎客户端版本跨越v6.3到v7.0时本地数据库结构会发生重大变更。建议在代码中加入版本判断逻辑def check_tianqing_version(): reg_path rSOFTWARE\Qianxin\TianQing try: with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, reg_path) as key: version winreg.QueryValueEx(key, Version)[0] if version.startswith(7.): return new return legacy except: return unknown对于需要卸载重装客户端的特殊情况可以通过静默卸载命令处理C:\Program Files\Qianxin\TianQing\uninst.exe /S但需要注意部分企业环境会设置卸载密码保护。这种情况下建议先通过管理控制台临时解除保护策略。