函数
概览
一组数学和数据处理操作,可增强 playbook 功能。
操作
转换时间格式
说明
将日期时间值从一种格式转换为另一种格式。
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
输入 | 字符串 | 不适用 | 是 | 指定要转换的输入日期时间值。 |
来源格式 | 字符串 | 不适用 | 是 |
指定输入字符串的日期时间格式。 https://strftime.org |
格式 | 字符串 | YYYY/MM/DD | 是 | 指定所需的输出时间格式。使用箭头时间格式。 https://arrow.readthedocs.io/en/stable/#supported-tokens |
时间差(以秒为单位) | 整数 | 0 | 是 | 指定您希望将输出偏移到的秒数。使用正值表示未来时间/日期,使用负值表示过去时间/日期。 |
时区 | 字符串 | 不适用 | 否 | 指定输出时区。 |
示例
在此场景中,日期时间输入为 11/23/2002 07:23:09,箭头时间格式为 MM/DD/YYYY HH:mm:ss,系统会将其转换为仅包含时间的时间,并回溯 5 秒,使用 UTC 时区。
操作配置
参数 | 类型 |
实体 | 所有实体 |
输入 | 11/23/2002 07:23:09 |
格式 | MM/DD/YYYY HH:mm:ss |
格式 | HH:mm:ss |
时间增量(以秒为单位) | -5 |
时区 | EST |
操作结果
-
脚本结果
脚本结果名称 值选项 示例 ScriptResult 时间结果 07:23:04
创建缩略图
说明
转换图片的 Base64 缩略图。
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
Base64 图片 | 字符串 | 不适用 | 否 | 指定图片的 Base64 字符串。 |
缩略图大小 | 字符串 | 250,250 | 是 | 指定缩略图的大小,以英文逗号分隔(宽度、长度)。 |
输入 JSON | JSON | 不适用 | 否 | 指定 JSON 输入。示例:{“image” :”<base64 of image>”} |
映像密钥路径 | 字符串 | 不适用 | 否 | 如果使用输入 JSON,请指定图片字段的键路径。 |
示例
在此场景中,我们将根据 Base64 输入创建 500x500 的缩略图。
操作配置
参数 | 值 |
实体 | 所有实体 |
Base64 图片 | iVBORWOKGgoAAAANSUhEUgAAAIgAAAH3CAYAAABnXCF6AAABXGIDQ1BJQ0MgUHJvZmIsZQAAK]FtkD9LQnEUhh9Nkf5ADhEVDQ4tgUmoBBFEdiMRCkyLr016NRXUflyNaGto6gNESOtBLc251mcoCpqDaA5cKm7naqVWBw7w8s5h5cDTq+uVNEFIMpVM×Gd96U2NnZeZ1y46cP]jGSUVCQeX5IRvrWz6vc4bL2dsG/NDi30qZvDEyOSemMBO//zndUTyZbMUTfpacMZVbBERa071aV/zQfCA6aEEj620d fkS5vTTb5uzKwmNOE7Ya+R1zPCT8L+dJufa+NSccf4ymCn78uW15Ki|9KiL]Mkhk80QpQQYYJor]CQP/2/F27saWyi2MOkQ|48VbkREUdRICsco4×BAL9wkEnpkP3v339seWoQpheg66zIpSVTTIMd7e8sQ VOTSHVvt]N/ee7jrqrshUKNrm3Buj3pdB884fDxY1|vNsj705f4jXNc/AQraYUmHWN3rAAAAmVYSWZNTOAqAAAACAABIZkABAAAAAEAAAAAAAAAAAADKOYABWAAABIAAABEOAIABAAAAAEAAAJY OAMABAAAAAAAAHAAAAEFTQO|JAAAAU2NyZwVuc2hvdBNik6MAAAHWAVRYdFhNTDpib20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9|mFkb2|10m5zOm1 IdGEvliB40nhtcHR rPSJYTVAgQ29ZSA2LjAuMCI+CiAgIDxyZ |
缩略图大小 | 500x500 |
输入 JSON | 空白 |
图片密钥路径 | 空白 |
操作结果
-
JSON 结果
{ "Thumbnail" : "<base 64 string>" }
IP 地址到整数
说明
将 IP 地址或 IP 地址列表转换为整数。
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
IP 地址 | 字符串 | 不适用 | 是 | 指定要转换为整数的 IP 地址列表(以英文逗号分隔)。 |
示例
在此场景中,IP 地址 1.1.1.1 和 2.2.2.2 会转换为整数形式。
操作配置
参数 | 值 |
实体 | 所有实体 |
IP 地址 | 1.1.1.1,2.2.2.2 |
操作结果
-
脚本结果
脚本结果名称 值选项 示例 ScriptResult 整数值 16843009、33686018 -
JSON 结果
{ "1.1.1.1" : 16843009, "2.2.2.2" : 33686018 }
数学算术
说明
一组内置的数学运算符:
加 - 返回 2 个实参之和的结果
Sub - 返回一个实参减去另一个实参的结果
Multi - 返回一个实参乘以另一个实参的结果
Div - 返回一个实参除以另一个实参的结果
Mod - 返回两个实参之间百分比的结果
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
函数 | 下拉列表 | Plus | 是 | 指定您希望对两个给定实参运行的函数。 |
实参 2 | 整数 | 不适用 | 是 | 指定第二个实参 |
实参 1 | 整数 | 不适用 | 是 | 指定第一个实参 |
示例 1:Plus
在此场景中,200 + 100 = 300。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | Plus |
实参 2 | 100 |
实参 1 | 200 |
示例 2:Sub
在此场景中,1000 - 300 = 700。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | Sub |
实参 2 | 300 |
实参 1 | 1000 |
示例 3:多
在此场景中,30 x 20 得出 600。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | 多 |
实参 2 | 20 |
实参 1 | 30 |
示例 4:Div
在此场景中,500 / 5 得出 100。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | Div |
实参 2 | 5 |
实参 1 | 500 |
示例 5:Mod
在此场景中,100 % 23 的结果为 8。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | Mod |
实参 2 | 23 |
实参 1 | 100 |
操作结果
-
脚本结果
脚本结果名称 值选项 示例 ScriptResult 计算结果 300
数学函数
说明
一组内置 Python 函数:
Abs - 返回数字的绝对值
Float - 返回浮点数
显示 - 转换数字以在需要时添加英文逗号
Hex - 将数字转换为十六进制值
Int - 返回一个整数
Max - 返回可迭代对象中最大的项
Min - 返回可迭代对象中最小的项
Round - 将数字四舍五入
排序 - 返回排序后的数字
Sum - 对迭代器的项求和
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
函数 | 下拉列表 | 最大值 | 是 | 指定您要对这些数字运行的数学函数。 |
Numbers 表格 | 整数 | 不适用 | 是 | 指定要运行数学函数的数字,并用英文逗号分隔。 |
示例 1:最大值
在此场景中,数字 13.5、-90、556、11.32 中的最大值是 556。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | Max |
数字 | 13.5,-90,566,11.32 |
示例 2:最小值
在此场景中,数字 13.5、-90、556、11.32 中的最小值是 -90。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | 最小值 |
数字 | 13.5,-90,566,11.32 |
示例 3:Round
在此场景中,57.63 会四舍五入为 58。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | 圆形 |
数字 | 57.63 |
示例 4:排序
在此场景中,数字 [13.5, -90.0, 556.0, 11.32] 按升序排序为 [-90.0, 11.32, 13.5, 556.0]。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | 排序 |
数字 | 13.5,-90,566,11.32 |
示例 5:求和
在此场景中,以下数字 [10、20、30、40、50] 的总和为 150。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | 总和 |
数字 | 10、20、30、40、50 |
示例 6:浮点数
在此场景中,数字 [100, 200] 会转换为浮点值 [100.0, 200.0]。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | 浮点数 |
数字 | 100,200 |
示例 6:十六进制
在此场景中,数字 [100,200] 会转换为十六进制值 ['0x64', '0xc8']。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | Hex |
数字 | 100,200 |
示例 7:Int
在此场景中,浮点值 100.23 会转换为整数 100。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | Int |
数字 | 100.23 |
示例 8:Abs
在此场景中,负整数 -53 会转换为绝对值 53。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | Abs |
数字 | -53 |
示例 9:显示
在此场景中,值 10000 会转换为包含逗号的值,即 10,000。
操作配置
参数 | 值 |
实体 | 所有实体 |
函数 | 展示广告 |
数字 | 10000 |
操作结果
-
脚本结果
脚本结果名称 值选项 示例 ScriptResult 计算结果 -90
运行 JSONPath 查询
说明
对给定的 JSON 运行 JSONPath 查询,并根据表达式提取值。
如需详细了解 JSONPath,请访问 https://github.com/h2non/jsonpath-ng。
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
JSON | 下拉列表 | JSON | 是 | 指定 JSON 输入。 |
JSONPath 表达式 | 字符串 | 不适用 | 是 | JSON 路径表达式始终以与 XPath 表达式结合 XML 文档使用相同的方式引用 JSON 结构。 |
示例
在此场景中,公司名称是从 JSON 示例输入中提取的。
操作配置
参数 | 值 |
实体 | 所有实体 |
JSON | JSON |
Editor | { "company": { "name": "Cyber Secure", "employees": 1000, "founded": "2005", "headquarters": { "city": "San Francisco", "state": "CA", "country": "USA" }, "security": { "firewall": true, "vpn": true, "intrusion_detection": true, "encryption": true, "two_factor_authentication": true } }, "products": [ { "name": "CyberShield", "type": "firewall", "price": 499, "description": "A state-of-the-art firewall for maximum protection against cyber attacks." }, { "name": "SecureVPN", "type": "VPN", "price": 99, "description": "A fast and secure VPN service for safe browsing and online privacy." }, { "name": "IntrusionAlert", "type": "intrusion detection", "price": 299, "description": "An advanced intrusion detection system that monitors your network and alerts you to potential threats." } ] } |
JSONPath 表达式 | $.company.name |
操作结果
- JSON 结果
{ "matches" : {"0" : "Cyber Secure"} }
SanitizeHTML
说明
给定一个 HTML 片段,此操作将根据 HTML5 解析算法对其进行解析,并清理任何不允许使用的标记或属性。此算法还可处理错误的语法,例如未关闭和(部分)嵌套错误的标记。
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
标记 | 字符串 | 不适用 | 否 | Tags 是允许使用的一组 HTML 标记。以英文逗号分隔的列表。不在此列表中的 HTML 标记将被转义或去除。 |
属性 | 字符串 | {‘a’ : [‘href’, ‘title’], ‘abbr’: [‘title’]} | 否 | 通过属性,您可以指定允许哪些属性。值应为以英文逗号分隔的列表 |
样式 | 字符串 | 不适用 | 否 | 如果您允许使用 style 属性,请指定允许的样式集,例如 color 和 background-color。值应以英文逗号分隔。 |
允许所有属性 | 复选框 | 尚未核查 | 否 | 设置为 true 可允许所有属性 |
输入 HTML | 字符串 | 不适用 | 是 | 指定要清理的 HTML 片段。 |
示例
在此场景中,输入 HTML 包含“标记”部分中未列出的标记,从而导致清理后的输出为“<script>evil()</script>”。
操作配置
参数 | 值 |
实体 | 所有实体 |
代码 | a、abbr、acronym、b、blockquote、code、em、i、li、ol、strong、ul、table、tr、td、th、h1、h2、h3、body、tbody、thead、div、footer、head、header、html、img、option、p、section、span、strong、svg |
特性 | 空白 |
样式 | 空白 |
允许所有属性 | 未勾选 |
输入 HTML | <script>evil()<</script> |
操作结果
-
脚本结果
脚本结果名称 值选项 示例 ScriptResult 净化后的结果 <script>evil()</script>”
字符串函数
说明
包括基本的 Python 字符串函数:
Lower:将字符串转换为小写。
UPPER:将字符串转换为大写。
Count:返回指定值在字符串中出现的次数。
FIND:在字符串中搜索指定值,并返回找到该值的位置。
IsAlpha:如果字符串中的所有字符都在字母表中,则返回“True”。
IsDigit:如果字符串中的所有字符都是数字,则返回“True”。
Replace:返回一个字符串,其中指定值已替换为指定值。
Strip:返回经过修剪的字符串。
Title:将每个单词的第一个字符转换为大写。
正则表达式替换:替换正则表达式匹配项
JSON 序列化:将 JSON 对象转换为序列化字符串。
正则表达式:根据正则表达式查找匹配项。
拆分:使用参数 1 作为分隔符将输入字符串拆分为列表。 默认值为逗号。
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
Param2 | 字符串 | 不适用 | 否 | 指定第二个参数。 |
Param1 | 字符串 | 不适用 | 否 | 指定第一个形参。 |
输入 | 字符串 | 不适用 | 是 | 指定函数的输入。 |
函数 | 下拉列表 | 较低 | 是 | 指定要运行的函数。 |
示例 1:降低
在此场景中,输入“SAMPLE INPUT”会转换为“sample input”。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 空白 |
Param1 | 空白 |
输入 | 示例输入 |
函数 | 较低 |
示例 2:上部
在此场景中,输入“sample input”会转换为“SAMPLE INPUT”。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 空白 |
Param1 | 空白 |
输入 | 示例输入 |
函数 | Upper |
示例 3:Count
在此场景中,该函数会统计输入字符串中“sample”一词出现的次数,结果为 2。注意,参数值区分大小写。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 空白 |
Param1 | 示例 |
输入 | 包含示例信息的示例句子。 |
函数 | 数量 |
示例 4:求
在此示例中,该函数会查找输入字符串中“containing”一词的起始索引,结果为 13。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 空白 |
Param1 | 包含 |
输入 | 包含示例信息的示例句子。 |
函数 | 查找 |
示例 5:isAlpha
在此场景中,它会检查输入字符串中的所有字符是否都是字母数字,从而返回 False 值。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 空白 |
Param1 | 空白 |
输入 | %包含示例信息的示例句子。 |
函数 | isAlpha |
示例 6:isDigit
在此场景中,它会检查输入字符串中的所有字符是否都是数字,结果为 False。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 空白 |
Param1 | 空白 |
输入 | 100000001 |
函数 | isDigit |
示例 7:替换
在此场景中,它将“information”一词替换为“info”,从而生成“sample input containing sample info”这一输出。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 信息 |
Param1 | 信息 |
输入 | 包含示例信息的示例句子。 |
函数 | 替换 |
示例 8:条带
在此场景中,它会移除输入字符串开头和结尾的空格,从而输出“sample input containing sample information”。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 空白 |
Param1 | 空白 |
输入 | 包含示例信息的示例句子。 |
函数 | Strip |
示例 9:标题
在此场景中,它会将输入字符串中每个单词的第一个字符转换为大写字符,从而生成“Sample Input Containing Sample Information”的输出。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 空白 |
Param1 | 空白 |
输入 | 包含示例信息的示例句子。 |
函数 | 标题 |
示例 10:正则表达式替换
在此示例中,我们使用正则表达式搜索“The”,并将其替换为“a”。
在此示例中,我们使用正则表达式搜索“The”,并将其替换为“a”。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | A |
Param1 | \bThe\b |
输入 | The quick brown fox jumps over the lazy dog |
函数 | 正则表达式替换 |
示例 11:JSON 序列化
在此场景中,它将 JSON 输入转换为序列化字符串,从而生成“{\"key\" :\"value\"}"输出。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 空白 |
Param1 | 空白 |
输入 | {"ip" : "0.0.0.0"} |
函数 | JSON 序列化 |
示例 12:正则表达式
在此场景中,我们尝试使用正则表达式提取输入 JSON 中的值。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 空白 |
Param1 | (?<="resource":").*?(?=") |
输入 | {"resource":"host001"} |
函数 | 正则表达式 |
示例 13:拆分
在此场景中,输入使用英文逗号作为分隔符转换为列表,从而生成 [100,200,300,400,500] 的输出。
操作配置
参数 | 值 |
实体 | 所有实体 |
Param2 | 空白 |
Param1 | 、 |
输入 | 100、200、300、400、500 |
函数 | 拆分 |
操作结果
-
脚本结果
脚本结果名称 值选项 示例 ScriptResult 基于函数的结果值 23
时间时长计算器
说明
计算两个日期时间之间的差值。
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
输入日期时间 1 | 字符串 | 不适用 | 是 | 指定第一个日期时间输入值。支持 strftime 格式或“now”(表示当前时间)。 |
输入日期时间 1 格式 | 字符串 | %Y-%d-%m'T'%H:%M:%S | 是 | 指定“日期时间 1”字符串的 strftime 格式。如需了解详情,请访问 https://strftime.org。 |
输入日期时间 2 | 字符串 | 现在 | 是 | 指定第二个日期时间输入值。支持 strftime 格式或“now”(表示当前时间)。 |
输入日期时间 2 格式 | 字符串 | %Y-%d-%m'T'%h:%m:%s | 是 | 指定“日期时间 2”字符串的 strftime 格式。如需了解详情,请访问 https://strftime.org。 |
示例
在此示例中,该函数会计算 2022-13-03'T'04:13:01 与当前日期时间之间的差值,并输出以下结果:0 年、200 天、10 小时、51 分钟和 20 秒。
操作配置
参数 | 值 |
实体 | 所有实体 |
输入日期时间 1 | 2022-13-03'T'04:13:01 |
输入日期时间 1 格式 | %Y-%d-%m'T'%H:%M:%S |
输入日期时间 2 | 现在 |
输入日期时间 2 格式 | %Y-%d-%m'T'%h:%m:%s |
操作结果
-
脚本结果
脚本结果名称 值选项 示例 秒 计算出的时间(以秒为单位) 17319080 -
JSON 结果
{ "years": 0, "days": 200, "hours": 4810, "minutes": 288651, "seconds": 17319080, "duration": "Time between dates: 0 years, 200 days, 10 hours, 51 minutes and 20 seconds" }
XMLtoJson
说明
将 XML 格式的输入转换为其 JSON 表示形式。
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
XML | 字符串 | 不适用 | 是 | 指定要转换为 JSON 的 XML。 |
示例
在此场景中,我们将示例 XML 字符串转换为 JSON 对象。
操作配置
参数 | 值 |
实体 | 所有实体 |
xml |
操作结果
-
脚本结果
脚本结果名称 值选项 示例 ScriptResult True/False 正确 -
JSON 结果
{ "cybersecurity": {"threat": [{"name": "Malware", "description": "A type of software designed to harm computer systems.", "severity": "High", "prevention": {"software": "Antivirus", "policy": "Regular software updates and patches"}}, {"name": "Phishing", "description": "A fraudulent attempt to obtain sensitive information by impersonating a trustworthy entity.", "severity": "High", "prevention": {"software": "Firewalls and intrusion detection systems", "policy": "Limiting access to network resources to only authorized personnel"}}]} }
检测哈希类型
说明
此操作可检测实体的最可能哈希类型。支持的类型包括 SHA256、MD5、SHA1、SHA-512。
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
哈希值 | 字符串 | 不适用 | 是 | 指定哈希值。支持以英文逗号分隔的列表。 |
示例
在此场景中,我们将识别两个哈希的哈希类型,这两个哈希分别生成 MD5 和 SHA256。
操作配置
参数 | 值 |
实体 | 所有实体 |
哈希值 | b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7aceZefcde9,ed076287532e86365e841e92bfc50d8c |
操作结果
-
脚本结果
脚本结果名称 值选项 示例 IsSuccess True/False 正确 -
JSON 结果
[{ "Hash": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9", "HashType": "SHA-256"}, {"Hash": "ed076287532e86365e841e92bfc50d8c", "HashType": "MD5" }]
检测 IP 类型
说明
检查 IP 地址是 IPv4 地址还是 IPv6 地址。IP 地址实体将通过 IPType 字段进行丰富。
参数
参数 | 类型 | 默认值 | 是必填字段 | 说明 |
IP 地址 | 字符串 | 不适用 | 是 | 指定 IP 值。支持以英文逗号分隔的列表。 |
示例
在此场景中,我们将检查两个不同的 IP 地址,以确定其类型。
操作配置
参数 | 值 |
实体 | 所有实体 |
IP 地址 | 2001:0db8:85a3:0000:0000:8a2e:0370:7334,
0.0.0.0 |
操作结果
-
脚本结果
脚本结果名称 值选项 示例 IsSuccess True/False 正确 -
JSON 结果
[{ "Address": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "IPType": "IPV6"}, {"Address": "0.0.0.0", "IPType": "IPV4"} }]
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。