函数

支持的平台:

概览

一组数学和数据处理操作,可增强 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 <threats> <threat> <name>恶意软件</name> <description>恶意软件是一种旨在危害计算机系统、窃取敏感数据或控制网络的恶意软件。</description> <prevention> <tip>安装反恶意软件软件并保持最新状态。</tip> <tip>避免点击可疑链接或下载来自未知来源的附件。</tip> <tip>定期备份重要数据。</tip> </prevention> <mitigation> <tip>断开受感染的计算机与网络的连接,以防止恶意软件进一步传播。</tip> <tip>使用反恶意软件软件移除恶意软件。</tip> <tip>从备份中恢复所有丢失或损坏的数据。</tip> </mitigation> </threat> </threats> <best-practices> <practice> <name>访问控制</name> <description>访问控制是指管理谁有权访问网络中的哪些信息或资源的过程。</description> <tip>实施强身份验证机制(例如多重身份验证)来验证用户身份。</tip> <tip>使用基于角色的访问控制来根据工作职责分配权限。</tip> <tip>监控和审核用户活动,以检测任何未经授权的访问尝试。</tip> </practice> </best-practices>

操作结果

  • 脚本结果
    脚本结果名称 值选项 示例
    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 专业人士那里获得解答。