Skip to main content

sangfor-edr-use

深信服 EDR 登录态管理、首页仪表盘、威胁资产分析、资产清点和高级威胁 API 采集。用户提到深信服 EDR、EDR、资产清点、高级威胁或 sangfor EDR 时必须先加载本 skill。

Quellinformationen

Repository
AgentFlocks/flocks
Letzte Quellaktivität
20. September 2026 um 16:54
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
481
Forks
90

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
4 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
sangfor-edr-use
group
平台集成
description
深信服 EDR 登录态管理、首页仪表盘、威胁资产分析、资产清点和高级威胁 API 采集。用户提到深信服 EDR、EDR、资产清点、高级威胁或 sangfor EDR 时必须先加载本 skill。
# 深信服 EDR Use ## 核心功能 实现边界:`sangfor_edr_http_login.py` 负责 HTTP 登录、认证探测、 `auth-state.json` Cookie 及 Secret Manager token bundle; `sangfor_edr_dashboard_api.py` 负责仪表盘 API 请求,只读取 HTTP 登录模块 验证过的同一套 Cookie/token,不从其他状态源拼接凭据。 `sangfor_edr_threat_assets_api.py` 负责威胁资产分析 API 请求,同样只读取 HTTP 登录模块验证过的同一套 Cookie/token。 `sangfor_edr_asset_inventory_api.py` 负责资产清点页面 API 请求,同样只读取 HTTP 登录模块验证过的同一套 Cookie/token。 `sangfor_edr_advanced_threat_api.py` 负责高级威胁告警模式和事件模式 API 请求, 同样只读取 HTTP 登录模块验证过的同一套 Cookie/token。 - 管理同一次登录产生的 Cookie 与 `login_token`。 - 默认使用 HTTP 登录,开始前必须向用户索取并保存 EDR 地址、用户名和密码。 - 仅当用户明确选择“打开页面后手动登录”时,才可不索取账密并直接使用 browser/CDP。 - HTTP 登录连续 3 次失败后,按“browser/CDP 自动化登录(仍需账密)→保留页面供用户手动登录(不需账密)”顺序降级。 - 每次登录或数据采集前探测现有认证,认证有效则跳过登录,失效则重新登录并更新存储。 - 通过 API 采集首页终端概况、受影响终端、漏洞、勒索防护、实时病毒、Top 5 终端和设备资源使用率。 - 通过 API 采集威胁资产分析的风险汇总、资产分组和威胁终端事件列表,支持风险级别、资产分组、终端状态、隔离状态和分页筛选。 - 通过 API 采集资产清点页面的资产分类统计。 - 通过 API 采集高级威胁的告警模式和事件模式列表,支持多选筛选、时间范围和自动分页。 ## 输入与输出 ### 认证工具 调用 `sangfor_edr_auth`: - `status_auth_state`:返回认证文件、凭据和认证探测状态,不返回敏感值。 - `ensure_auth_state`、`refresh_auth_state`、`http_login`:执行“探测后按需 HTTP 登录”;HTTP 连续 3 次失败时按降级策略进入 browser/CDP,再失败则转为手动登录。 - `browser_login`:用户明确选择自动化登录时,执行“探测后按需 browser/CDP 登录”;该路径需要账密,除非用户明确要求打开页面后自行手动登录。 - `validate_auth_state`:仅验证浏览器 state。 - `complete_manual_login`:保存用户在已打开浏览器中完成的登录。 成功输出包含 `status`、`valid`、`login_skipped` 和非敏感探测结果;失败输出包含稳定的 `reason` 与恢复建议。 ### 仪表盘工具 调用 `sangfor_edr_dashboard`,可输入: - `sections`:可选采集项;省略时采集全部仪表盘数据。 - `days`:统计时间范围,允许 1–90 天。 - `base_url`、`auth_state_path`:可选运行时覆盖。 输出包含 `data`、`errors`、`sections`、`days` 和本次认证是复用还是重登;不得输出 Cookie、密码或 `login_token`。 ### 威胁资产分析工具 调用 `sangfor_edr_threat_assets`,可输入: - `sections`:`risk_summary`、`zones`、`agent_events`,省略时采集全部数据。 - `days`:威胁终端事件时间范围,允许 1–90 天。 - `info`:用户在搜索框输入的终端名称、IP 地址或资产使用人关键词,原样放入 `list_agent_event.filter.info`。 - `risk_level`、`host_type`、`zone_name`、`agent_state`、`isolate_agent`:威胁资产筛选条件;用户使用中文条件时由 Skill 转换为接口枚举值。 - `page`、`limit`、`paginate`:事件列表分页配置;`limit` 仅允许 10、20、50、100、500,默认自动采集至 `total_items`。 - `base_url`、`auth_state_path`:可选运行时覆盖。 输出包含风险汇总、资产分组、事件列表、分页信息和接口错误;不得输出 Cookie、密码或 `login_token`。 ### 资产清点工具 调用 `sangfor_edr_asset_inventory`,可输入: - `scene_type`:资产清点范围,默认 `server_and_pc`。 - `base_url`、`auth_state_path`:可选运行时覆盖。 输出包含原始资产分类响应、带中英文标签的 `readable_data` 和接口错误;不得输出 Cookie、密码或 `login_token`。 分类字段映射由采集模块维护;`Replace` 按页面显示映射为“真替真用”,英文保留原始字段名 `Replace`。 ### 高级威胁工具 调用 `sangfor_edr_advanced_threat`,可输入: - `sections`:`warning_logs`、`incidents`;省略时采集两种模式。 - `threat_levels`:威胁等级单值或多值。 - `disposal_states`、`event_disposal_states`、`agent_types`、`detect_sources`、`event_types`:事件模式多选条件。 - `wl_switch`:已例外告警单选;`0`=隐藏,`1`=显示。 - `days`:默认最近 7 天;或成对提供 `begin_time`、`end_time`。 - `page_no`、`page_limit`、`paginate`:分页配置,默认自动采集全部。 - `base_url`、`auth_state_path`:可选运行时覆盖。 输出包含 `data`/`raw_data`、`readable_data`、分页元数据和分项 `errors`;不得输出 Cookie、密码或 `login_token`。 ## 关键配置 - `base_url`:从用户提供的 EDR 地址提取 scheme、host 和 port;不得使用固定示例地址。 - `username`、`password`:从设备配置或 Secret Manager 读取。 - `auth_state_path`:Cookie state 文件位置。 - `auto_ocr_code`、`max_captcha_retry`:HTTP/browser 登录验证码配置。 - selector 和页面路径配置仅用于 browser/CDP 登录。 ## EDR 交互协议 1. 从 Secret Manager 与 `auth-state.json` 加载成套认证,并校验 base URL 和 Cookie 指纹。 2. 使用 Cookie 与 `login_token` 调用威胁终端概览接口 `get_agent_overview`: - HTTP 200、无登录页重定向、响应成功且包含终端概览数据:认证有效,跳过登录。 - Cookie 缺失或不匹配、401/403、重定向、非 200、响应无终端概览数据:认证失效。 3. 默认重新登录流程:访问登录页,获取 RSA 公钥和验证码,提交 `dlogin`,调用 `launch_login.php`,再 GET `/ui`;HTTP 登录连续 3 次失败后进入 browser/CDP 自动化登录,自动化登录仍需账密,自动化登录失败后保留页面供用户手动登录。 4. 登录成功后将 Cookie 写入 `auth-state.json`,将 `login_token` 写入 Secret Manager,并更新配对指纹。 5. 仪表盘 API 只能使用通过上述探测的同一套 Cookie/token;禁止从不同 state 或 Secret 拼接。 6. 威胁资产分析 API 使用以下接口: - `POST /launch.php?s={login_token}&opr=list_risk_agent_total_count`:风险级别和隔离终端汇总。 - `POST /launch.php?s={login_token}&opr=list_zones`:资产分组列表,payload 使用 `data.local=true`。 - `POST /launch.php?s={login_token}&opr=list_agent_event`:威胁终端事件列表,payload 使用 `filter.info`(终端名称/IP/资产使用人关键词)、其他筛选条件、`day_sum`、`page` 和 `limit`;分页采集直到返回的 `total_items` 收集完成。 - 三个接口均使用当前登录会话的 Cookie、动态 `query_id` 和同一 `login_token`。 7. 威胁资产筛选枚举映射: - `risk_level`:空值=全部,`0`=低风险,`1`=中风险,`2`=高风险。 - `host_type`:`0`=PC 终端,`1`=服务器终端;用户说“PC/服务器”时转换为对应数字,不能把中文直接放入 payload。 - `agent_state`:`-1`=全部终端状态,`0`=在线,`1`=离线,`2`=已禁用,`3`=未授权,`4`=已卸载,`6`=已降级。 - `limit`:只能使用 `10/20/50/100/500`。 - `zone_name`:先调用 `list_zones`,按返回的 `zone_name` 或 `full_zone_name` 精确匹配,再将对应的设备专属 `zone_id` 放入 `list_agent_event.filter.zone_id`;不能使用固定 zone ID,也不能把中文分组名直接作为 `zone_id`。 8. 资产清点 API 使用 `POST /api/edrgoweb/v1/asset/inventory/classify?s={login_token}`,payload 为 `{"sceneType":"server_and_pc"}`;复用当前登录会话的 Cookie 和同一 `login_token`,接口返回 `code != 0` 时视为失败。 9. 高级威胁 API 使用: - `POST /api/edrgoweb/v1/advthreats/querywarninglogs?_method=get&s={login_token}`:告警模式列表,只发送已确认的 `threatLevel`、`wlSwitch` 筛选。 - `POST /api/edrgoweb/v1/advthreats/queryincidentinfo?_method=get&s={login_token}`:事件模式列表,发送威胁等级、处置状态、实时防护、终端类型、检测来源、事件标签、时间范围和已例外告警筛选。 - `uuid` 是动态请求关联标识,不是设备 ID;`uid` 默认使用当前登录用户名,`tid` 默认 `0`。 10. 高级威胁筛选映射: - `threatLevel`:`5`=严重、`4`=高危、`3`=中危、`2`=低危、`1`=信息。 - `disposalState`:`0`=待处置、`2`=已处置、`3`=已忽略。 - `eventDisposalState`:`0`=暂不支持、`1`=未处置、`2`=自动处置中、`3`=已自动处置。 - `agentType`:`0`=PC、`1`=服务器。 - `detectSource`:`1`=IOC引擎、`2`=IOA引擎、`3`=SIP联动、`6`=MS引擎、`8`=AF联动;响应中的未知值保留原值并标记“未知”。 - `eventType`:`1`=钓鱼攻击、`2`=Web入侵、`3`=恶意病毒、`0`=其他。 - 除时间范围和 `wlSwitch` 外,上述业务筛选均支持多选。 ## 错误处理 - 缺少地址或账密:返回缺失字段,向用户索取后保存到配置或 Secret Manager。 - 验证码或 HTTP 登录失败:最多进行 3 次独立 HTTP 登录尝试;仍失败则切换 browser/CDP 自动化登录,切换时仍需账密。 - browser/CDP 自动化登录失败或用户明确选择打开页面后手动登录:保留浏览器供用户完成登录,不再索取账密,再调用 `complete_manual_login`。 - 认证探测失败:禁止继续业务 API;先执行 HTTP 重登并再次探测,连续 3 次 HTTP 仍失败则按 browser/CDP 自动化登录→手动登录降级。 - 仪表盘部分接口失败:保留成功数据,在 `errors` 中按采集项返回失败原因。 - 资产清点接口失败:在 `errors` 中返回接口失败原因,不输出敏感认证信息。 - 高级威胁单个模式失败:保留另一个模式的成功数据,并在 `errors` 中按模式返回脱敏原因。 - Cookie、密码和 `login_token` 不得回显、记录日志或混入业务输出。 ## 执行约束 - 运行本 Skill 提供的 Python 脚本时,必须使用 Flocks 虚拟环境;禁止使用系统 Python。 - 不得假设 Flocks 项目、插件或虚拟环境的绝对路径;代码必须通过当前运行时加载的模块、`Path.home()`、`~/.flocks` 或显式配置/环境变量解析路径。 - 需要具体 CDP 命令、浏览器启动方式、验证码识别、selector、tab/iframe 处理或页面关键词时,必须先阅读 [references/cdp-workflow.md](references/cdp-workflow.md),不要在本文件重复展开。 - `bu.port` 是 Flocks browser daemon 的 IPC 端口文件,不是 Chrome remote-debugging 端口;禁止手工创建或修改。 - 默认认证和仪表盘采集开始时不得启动 browser daemon;只有用户明确选择 `browser_login`、执行 `validate_auth_state`/`complete_manual_login`,或 HTTP 登录连续 3 次失败进入降级流程时,才允许使用 browser/CDP。 - HTTP 登录连续 3 次失败后必须按 browser/CDP 自动化登录→手动登录顺序降级;自动化登录阶段仍需账密,手动登录阶段不得要求账密。 - 任何 API 采集前必须完成认证探测;认证探测失败时不得继续调用业务接口。 - 威胁资产分析的分页请求必须复用同一套 Cookie/token,不得在分页过程中重新拼接或替换认证参数。 - 资产清点 API 请求必须复用同一套 Cookie/token;不得把抓包中的 sessionid、token 或设备地址写死为通用凭据或地址。 - 高级威胁分页必须复用同一套 Cookie/token;不得输出响应 `req` 中的 token,也不得把抓包中的 `uid`、token、Cookie 或设备地址写死。 - 用户未提供接口参数名时,必须根据中文语义完成上述映射;无法确认的筛选条件不得猜测数值,应省略筛选或向用户确认。
Auf GitHub ansehen