这个 skill 聚焦一个单独场景:
它现在按基础 skill 设计,直接覆盖:
优先使用随 skill 附带的 Python 脚本:
使用前提:
host 只有 IP 或主机名,脚本会自动补成 https://。call_api、通用 HTTP 工具或临时 Python 代码直接请求接口。python3 ./scripts/isource_whitelist_baseline_query.py --host 10.182.60.81 --token '<api-token>' primary-regions
python3 ./scripts/isource_whitelist_baseline_query.py --host 10.182.60.81 --token '<api-token>' whitelist-payload --primary-region-id 1 --threat-name any --src-ip-start 1.1.1.1 --dst-ip-start 2.2.2.2
python3 ./scripts/isource_whitelist_baseline_query.py --host 10.182.60.81 --token '<api-token>' whitelist-download --primary-region 1 --type 1
全局白名单基线管理
适用情况:
当用户要“新增白名单”时,优先先引导用户按统一格式提供信息,再生成 payload。
前提:
host 和 api token 后,才展示下面模板。推荐提示用户直接按下面模板填写:
资产域(单个资产域名称):默认资产域
威胁名称(单个字符串):APT攻击恶意域名
源IP(留空 / 单IP / IP区间 / 多个条目,多个用分号分隔):10.160.51.214
目的IP(留空 / 单IP / IP区间 / 多个条目,多个用分号分隔):
攻击者IP(留空 / 单IP / IP区间 / 多个条目,多个用分号分隔):
受害者IP(留空 / 单IP / IP区间 / 多个条目,多个用分号分隔):
源端口(留空 / 单端口 / 多端口 / 端口区间):443
目的端口(留空 / 单端口 / 多端口 / 端口区间):
描述(说明文本,可留空):测试新增白名单
使用要求:
资产域 优先填写名称,skill 再去解析对应 primaryRegionId。源IP / 目的IP / 攻击者IP / 受害者IP 支持单 IP、IP 区间和多个条目;多个条目建议用英文分号 ; 分隔。源端口 / 目的端口 使用字符串形式,多个端口用英文逗号分隔,范围用 - 表示。描述 主要用于补充业务背景,默认不直接进入白名单接口请求体,但应在结果里回显。字段类型说明:
资产域:资产域名称。建议填写单个资产域名称,例如 默认资产域。当前模板按单个资产域处理。威胁名称:字符串。可填写单个威胁名称,例如 APT攻击恶意域名。源IP:支持留空、单个 IP、单个 IP 区间、多个 IP/IP 区间。示例:10.160.51.214、10.160.51.214-10.160.51.220、10.160.51.214;10.160.51.230-10.160.51.240。目的IP:支持留空、单个 IP、单个 IP 区间、多个 IP/IP 区间。示例:10.160.51.10、10.160.51.10-10.160.51.20。攻击者IP:支持留空、单个 IP、单个 IP 区间、多个 IP/IP 区间。示例:3.3.3.3、3.3.3.3-3.3.3.9。受害者IP:支持留空、单个 IP、单个 IP 区间、多个 IP/IP 区间。示例:4.4.4.4、4.4.4.4-4.4.4.10。源端口:支持留空、单个端口、多个端口、端口区间。示例:443、80,443,8080、1000-2000。目的端口:支持留空、单个端口、多个端口、端口区间。示例:22、22,80,443、3000-4000。描述:字符串。可留空,主要用于补充说明,不直接进入白名单接口请求体。如果用户提供的是自由文本,而不是模板,先尽量整理成上面的结构,再生成请求。
脚本映射建议:
--src-ip-start/--src-ip-end 这类参数。--src-ip-items、--dst-ip-items、--attack-ip-items、--victim-ip-items。--*-ip-items 使用分号 ; 分隔多个条目;单 IP 直接写 IP,区间写成 start-end。--template-text 或 --template-file 直接解析。先获取:
scope.primaryRegionIdscope.primaryRegionName如果用户明确要求“全部资产域”,再判断是否允许使用 [-1]。
优先使用附带脚本生成或提交全局白名单新增请求。
请求体关注这些字段:
primaryRegionIdsrcPortsdstPortsthreatNamesrcIpdstIpattackIpvictimIp至少传递以下字段之一:
srcPortsdstPortssrcIpdstIpattackIpvictimIpthreatName字段映射建议:
资产域 -> primaryRegionId威胁名称 -> threatName源IP -> srcIp目的IP -> dstIp攻击者IP -> attackIp受害者IP -> victimIp源端口 -> srcPorts目的端口 -> dstPorts描述 -> 输出时展示,不直接映射到 V2 全局白名单接口新增成功后,重点记录:
id优先使用附带脚本执行白名单导出。
type:
1 全局白名单2 域名类白名单3 文件类白名单默认这个 skill 处理的是:
type=1如果用户说的是“查询白名单”:
最终输出要回答三个问题:
primaryRegionId 在 V2 写接口里是数组,优先传单个资产域数组,如 [1]-group=false 表示单 IPgroup=true 表示 IP 段startIp 和 endIp 应相同默认按下面结构输出:
资产域 ID / 名称
把用户原始输入规整成标准字段
关键字段预览
白名单 ID / 条件摘要
导出类型 / 文件获取方式 / 文件格式说明
是否完成“新增 + 导出”
call_api 或其他通用接口调用方式。.xlsx 文件,但响应头可能仍然是通用二进制类型,不要错误地当成 JSON 解析。whitelist-download --execute 默认会按服务端返回的文件名保存;如果服务端未返回文件名,则回退为本地生成的 .xlsx 文件名。primaryRegionId,当前 skill 应优先自行查询资产域,而不是依赖其他 skill。确认要求:
whitelist-payload 可直接用于预览。whitelist-create 属于真实写操作,必须在用户确认后再加 --execute 执行。whitelist-download 属于下载动作,也必须在用户确认后再加 --execute 执行。字段说明、导出策略和 payload 示例见 references/whitelist-baseline.md。
共 2 个版本