文件实用程序
概览
文件实用程序是一组文件操作,用于增强 playbook 功能。
操作
添加附件
说明
向案例墙添加附件。
参数
| 参数 | 类型 | 默认值 | 是必填字段 | 说明 | 
|---|---|---|---|---|
| 名称 | 字符串 | 不适用 | 是 | 指定将在支持请求墙中显示的附件的名称。 | 
| IsFavorite | 复选框 | 尚未核查 | 否 | 指定是否要在支持服务墙中将附件标记为收藏。 | 
| Base64 Blob | 字符串 | 不适用 | 是 | 指定附件的 Base64 Blob。使用“Get Files as Base64”操作获取 Base64 Blob。 此操作接受单个 Base64 blob。如果您有多个文件,则必须为每个文件单独调用此操作。 | 
| 类型 | 字符串 | 不适用 | 是 | 指定文件的扩展名 | 
| 说明 | 字符串 | 不适用 | 是 | 指定文件的说明。 | 
示例
在此场景中,Base64 blob 源自之前的操作,然后附加到问题墙。添加到墙上后,即可用于进一步分析。此操作与“获取文件(以 Base64 格式)”操作搭配使用,后者用于生成文件的 Base64 字符串。
操作配置
| 参数 | 值 | 
| 实体 | 所有实体 | 
| 名称 | Malicious_EML | 
| IsFavorite | 已检查 | 
| Base64 Blob | [FileUtilities_Get Files as Base64_1.JsonResult | "data.base64"] | 
| 类型 | [FileUtilities_Get Files as Base64_1.JsonResult | "data.extension" | 
| 说明 | 最终用户提供的恶意 EML 文件。 | 
操作结果
- 
    脚本结果
    脚本结果名称 值选项 示例 is_success True/False is_success:True 
- 
    JSON 结果
    { "evidenceName" : "Malicious_EML", "description " : "Malicious EML file from end user.", "evidenceThumbnailBase64" : "", "evidenceId" : 322, "fileType" : ".eml", "creatorUserId" : "Siemplify automation", "id " : 322, "type" : 4, "caseId" : 51187, "isFavorite" : true, "modificationTimeUnixTimeInMs" : 1664206699128, "creationTimeUnixTimeInMs" : 1664206699128, "alertIdentifier" : null }
将实体添加到文件
说明
向本地文件添加目标实体的标识符。它只会向文件添加一次实体,如果实体已存在,则返回 False。
参数
| 参数 | 类型 | 默认值 | 是必填字段 | 说明 | 
| 文件名 | 字符串 | 不适用 | 是 | 指定要将实体写入到的文件的名称。文件将存储在 /tmp/ 目录中。 | 
示例
在此场景中,可疑主机名实体标识符会添加到 /mnt/fileshare/ 目录中名为 iocs_list.txt 的文件中。
操作配置
| 参数 | 值 | 
| 实体 | 可疑主机名 | 
| 文件名 | /mnt/fileshare/ocs_list.txt | 
操作结果
- 
    脚本结果
    脚本结果名称 值选项 示例 AddedAllEntities True/False 正确 
统计文件数
说明
根据特定文件扩展名统计给定文件夹路径中的文件数量。
参数
| 参数 | 类型 | 默认值 | 是必填字段 | 说明 | 
| 文件扩展名 | 字符串 | *.txt | 否 | 指定要统计的文件扩展名。 | 
| 文件夹 | 字符串 | 不适用 | 是 | 指定要统计文件数的文件夹路径。 | 
| Is Recursive | 复选框 | 尚未核查 | 否 | 如果启用,系统将以递归方式统计目录中的所有文件。 | 
示例
在此场景中,/mnt/fileshare 目录中所有包含 .txt 的文件都会被统计在内。
操作配置
| 参数 | 值 | 
| 实体 | 所有实体 | 
| 文件扩展名 | *.txt | 
| 文件夹 | /mnt/fileshare/ | 
| Is Recursive | 已检查 | 
操作结果
- 
    脚本结果
    脚本结果名称 值选项 示例 ScriptResult Count 值 10 
创建归档文件
说明
根据提供的文件或目录列表创建归档文件。返回归档文件的位置。
参数
| 参数 | 类型 | 默认值 | 是必填字段 | 说明 | 
| 归档类型 | 字符串 | 不适用 | 是 | 指定要创建的归档类型。支持:zip、tar、gztar、bztar、xtar。 | 
| 归档基本名称 | 字符串 | 不适用 | 是 | 指定将要创建的归档文件的名称,不含扩展名。 | 
| 归档输入 | 字符串 | 尚未核查 | 是 | 如果启用,系统将以递归方式统计目录中的所有文件。 | 
示例
在此场景中,系统会创建一个名为 archived_ioc_files 的归档 zip 文件,其中包含 /mnt/fileshares 目录中的多个文件。
操作配置
| 参数 | 值 | 
| 实体 | 所有实体 | 
| 归档类型 | zip | 
| 归档基本名称 | archived_ioc_files | 
| 归档输入 | /mnt/fileshares/ioc_list1,/mnt/fileshares/ioc_list2, /mnt/fileshares/ioc_list3 | 
操作结果
- 
    脚本结果
    脚本结果名称 值选项 示例 ScriptResult True/False true 
- 
    JSON 结果
    { "archive" : "/opt/siemplify/siemplify_server/Scripting/FileUtilities/Archives/archived_ioc_files.zip", "success" : true }
解码 Base64
说明
对 Base64 输入字符串进行解码,并返回包含相应内容的 JSON 对象。
参数
| 参数 | 类型 | 默认值 | 是必填字段 | 说明 | 
| Base64 输入 | 字符串 | 不适用 | 是 | 指定要解码的 Base64 输入字符串。 | 
| 编码 | 下拉列表 | UTF-8 | 是 | 指定编码格式。UTF-8 或 ASCII。 | 
示例
在此场景中,文件的 Base64 Blob 使用 UTF-8 转换为其原始内容。
操作配置
| 参数 | 值 | 
| 实体 | 所有实体 | 
| Base64 输入 | (2FtcGxIIGZpbGUgY29udGFpbmluZyBzYW1qbGUgZGFOYQ== | 
| 编码 | UTF-8 | 
操作结果
- 
    脚本结果
    脚本结果名称 值选项 示例 ScriptResult True/False true 
- 
    JSON 结果
    { "decoded_content" : "<file content>" }
提取归档
说明
将归档文件提取到目录。
参数
| 参数 | 类型 | 默认值 | 是必填字段 | 说明 | 
| 归档 | 字符串 | 不适用 | 是 | 指定要提取的归档文件的路径。支持:zip、tar、gztar、bztar、xtar。目标路径为: /opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract | 
示例
在此场景中,ioc_lists.zip 中的文件会被提取并保存到 /opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract 目录中。
操作配置
| 参数 | 值 | 
| 实体 | 所有实体 | 
| 归档 | /opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract/ioc_lists | 
操作结果
- 
    脚本结果
    脚本结果名称 值选项 示例 ScriptResult True/False true 
- 
    JSON 结果
    {"archives" : {0 : "success" : true, "archive" : "ioc_lists.tar", "folder" : "/opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract/ioc_lists", "files_with_path" :{ 0 : "/opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract/testarchive/Archives/ioc_lists.tar", 1 : "/opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract/ioc_lists/Archives/file1" }, "files_list" : { 0 : "ioc_lists.tar", 1 : "file1", 2 : "file2" }, "files" :{ "name" : "ioc_lists", "type" : "directory", "children" : { 0 :{ "name" : "ioc_lists.tar", "type" : "file" }, 1 : { "name" : "file1", "type" : "file" }, 2 : { "name" : "file2", "type" : "file" } } } }
解压 ZIP 文件
说明
从 ZIP 归档中提取文件。它能够通过提供的密码或暴力破解来提取受密码保护的文件。它使用文件实体的 attachment_id 属性从支持请求墙中提取文件并解压缩。
参数
| 参数 | 类型 | 默认值 | 是必填字段 | 说明 | 
| 在 JSON 结果中包含数据 | 复选框 | 尚未核查 | 否 | 指定是否要在 JSON 结果中以 Base64 值形式包含提取的数据。 | 
| 创建实体 | 复选框 | 勾选 | 否 | 指定是否要根据提取的文件创建实体。 | 
| ZIP 文件密码 | 字符串 | 不适用 | 否 | 指定 zip 文件的密码(如果该文件受密码保护)。 | 
| 暴力破解密码 | 复选框 | 尚未核查 | 否 | 指定是否要对受密码保护的 ZIP 文件进行暴力破解。 | 
| 添加到案例墙 | 复选框 | 勾选 | 否 | 指定是否要将提取的文件添加到案件墙。 | 
| ZIP 密码列表分隔符 | 字符串 | 、 | 是 | 如果“Zip 文件密码”参数中提供了多个密码,请指定要使用的分隔符。 | 
示例
在此场景中,系统会提取受密码保护的 ZIP 文件实体,并将生成的文件添加到案例墙,同时创建文件实体。
操作配置
| 参数 | 值 | 
| 在 JSON 结果中包含数据 | 已检查 | 
| 创建实体 | 已检查 | 
| ZIP 文件密码 | Password1 | 
| 暴力破解密码 | 未勾选 | 
| 添加到案例墙 | 已检查 | 
| ZIP 密码列表分隔符 | 、 | 
操作结果
- 
    脚本结果
    脚本结果名称 值选项 示例 zip_files_extracted True/False true 
获取附件
说明
从支持服务请求墙中检索附件,并返回其 Base64 值。
参数
| 参数 | 类型 | 默认值 | 是必填字段 | 说明 | 
| 附件范围 | 下拉列表 | 提醒 | 是 | 指定需要检索的附件类型。选项包括:支持请求或提醒 | 
示例
在此场景中,附件从支持请求中提取并转换为 Base64 Blob。
操作配置
| 参数 | 值 | 
| 实体 | 所有实体 | 
| 附件范围 | 提醒 | 
操作结果
- 
    脚本结果
    脚本结果名称 值选项 示例 ScriptResult 附件数量 1 
- 
    JSON 结果
    { "evidenceName": "myfile.txt", "description": "sample descriptions", "evidenceThumbnailBase64": "", "evidenceId": 475, "fileType": ".txt", "creatorUserId": "Siemplify automation", "id": 475, "type": 4, "caseId": 51209, "isFavorite": false, "modificationTimeUnixTimeInMs": 1664222678523, "creationTimeUnixTimeInMs": 1664222678523, "alertIdentifier": "COFENSE TRIAGE: INBOX REPORTCBEdfghB-B9E2-4A04fghAB-136A6fdghF0C6", "base64_blob": "dGhpcyBpcyB0ZXN0aW5nIHNhhdfhfpbmRlIHdpbmRvd3Mgc2hhcmdfghdfgUgddfghXNpbmcgc2llbXBsdfghaWZ5IGFndfghdfghdfghZW50" }
以 Base64 格式获取文件
说明
将目录中的文件转换为 Base64 值。
参数
| 参数 | 类型 | 默认值 | 是必填字段 | 说明 | 
| 文件路径 | 字符串 | 不适用 | 是 | 指定存储文件的文件路径。如果指定了多个路径,请使用英文逗号分隔符。 | 
示例
在此场景中,/mnt/sharefiles 目录中的一个名为 iocs_list.txt 的文件被转换为 Base64 blob。此操作通常与“添加附件”操作一起使用,后者将 Base64 Blob 作为输入,并将文件添加到支持请求墙中。
操作配置
| 参数 | 值 | 
| 实体 | 所有实体 | 
| 文件路径 | /mnt/sharefiles/iocs_list.txt | 
操作结果
- 
    脚本结果
    脚本结果名称 值选项 示例 ScriptResult 附件数量 1 
- 
    JSON 结果
    { "Filenames" : { 0 : "/opt/siemplify/siemplify_server/Scripting/Phishing_.eml", 1 : "/opt/siemplify/siemplify_server/Scripting/Logo.png" }, "data" : { 0 : { "path" : "/opt/siemplify/siemplify_server/Scripting", "filename" : "Phishing_.eml", "extension" : ".eml", "base64" : "asdfagdfgergert34523523452345dfg" } } }
从文件中移除实体
说明
从本地文件中移除目标实体的标识符。如果未能移除所有实体或某个实体不存在,则返回 False。
参数
| 参数 | 类型 | 默认值 | 是必填字段 | 说明 | 
| 文件名 | 字符串 | 不适用 | 是 | 指定要从中移除实体的文件的名称。 | 
示例
在此场景中,系统会从位于 /tmp 目录中的 ioc_list.txt 中移除内部主机名实体标识符。
操作配置
| 参数 | 值 | 
| 实体 | 内部主机名 | 
| 文件名 | ioc_list | 
操作结果
- 
    脚本结果
    脚本结果名称 值选项 示例 RemovedAllEntities True/False 正确 
将 Base64 保存到文件
说明
将 Base64 字符串转换为文件。它支持以英文逗号分隔的文件名和 Base64 输入列表。
默认文件路径:/opt/siemplify/siemplify_server/Scripting/downloads/FILE_NAME
使用代理时的默认文件路径:/opt/SiemplifyAgent/downloads/FILE_NAME
参数
| 参数 | 类型 | 默认值 | 是必填字段 | 说明 | 
| 文件扩展名 | 字符串 | 不适用 | 否 | 指定要添加到文件名中的文件扩展名。 | 
| Base64 输入 | 字符串 | 不适用 | 是 | 指定将转换为文件的 Base64 字符串。支持使用英文逗号分隔。 | 
| 文件名 | 字符串 | 不适用 | 是 | 指定将根据 Base64 字符串创建的文件的名称。 | 
示例
在此场景中,如果操作在远程代理上运行,则 Base64 输入字符串会保存到 /opt/SiemplifyAgent/downloads 目录中的 ioc_list 文本文件。
操作配置
| 参数 | 值 | 
| 实体 | 内部主机名 | 
| 文件扩展名 | txt | 
| Base64 输入 | c2FtcGxIIGZpbGUgY29udGFpbsdfgsdfgmluZyBzYW1wbGUgZGF OYQ== | 
| 文件名 | ioc_list | 
操作结果
- 
    脚本结果
    脚本结果名称 值选项 示例 ScriptResult True/False true 
- 
    JSON 结果
    { "files": [ {"file_name": "ioc_list", "file_path": "/opt/SiemplifyAgent/downloads/ioc_list.txt", "extension": ".txt"}] }
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。