文件实用程序

支持的平台:

概览

文件实用程序是一组文件操作,用于增强 playbook 功能。

操作

添加附件

说明

向案例墙添加附件。

参数

参数 类型 默认值 必填 说明
名称 字符串 不适用 是 指定将在支持请求墙中显示的附件的名称。
IsFavorite 复选框 尚未核查 否 指定是否要在案例墙中将附件标记为收藏。
Base64 Blob 字符串 不适用 是 指定附件的 Base64 blob。使用“Get Files as Base64”操作获取 Base64 blob。

此操作接受单个 Base64 Blob。如果您有多个文件,则必须单独为每个文件调用此操作。

类型 字符串 不适用 是 指定文件的扩展名
说明 字符串 不适用 是 指定文件的说明。


示例

在此场景中,Base64 blob 源自之前的操作,然后附加到支持请求墙。添加到墙上后,即可用于进一步分析。此操作与“Get File as Base64”(以 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。

重要提示:在 SaaS 环境中运行此操作时,文件会保存到 Python 执行 pod 的临时本地存储空间。此存储空间不是持久性的,文件可能会随着时间的推移而变得无法访问或被删除,尤其是在大规模部署中。为了实现可靠且持久的文件存储,我们强烈建议在远程代理上运行集成实例。

参数

参数 类型 默认值 必填 说明
文件名 字符串 不适用 是 指定要将实体写入到的文件的名称。文件将存储在 /tmp/ 目录中。

示例

在此场景中,可疑的主机名实体标识符会添加到 /mnt/fileshare/ 目录中名为 iocs_list.txt 的文件中。

操作配置

参数 值
实体 可疑主机名
文件名 /mnt/fileshare/ocs_list.txt

操作结果

  • 脚本结果
    脚本结果名称 值选项 示例
    AddedAllEntities True/False True

统计文件数

说明

根据特定文件扩展名统计给定文件夹路径中的文件数量。

重要提示:在 SaaS 环境中运行此操作时,文件会保存到 Python 执行 pod 的临时本地存储空间。此存储空间不是持久性的,文件可能会随着时间的推移而变得无法访问或被删除,尤其是在大规模部署中。为了实现可靠且持久的文件存储,我们强烈建议在远程代理上运行集成实例。

参数

参数 类型 默认值 必填 说明
文件扩展名 字符串 *.txt 否 指定要按哪种文件扩展名进行统计。
文件夹 字符串 不适用 是 指定要统计文件数的文件夹路径。
Is Recursive 复选框 尚未核查 否 如果启用,系统将以递归方式统计目录中的所有文件。

示例

在此场景中,/mnt/fileshare 目录中所有包含 .txt 的文件都会被统计。

操作配置

参数 值
实体 所有实体
文件扩展名 *.txt
文件夹 /mnt/fileshare/
Is Recursive 已检查

操作结果

  • 脚本结果
    脚本结果名称 值选项 示例
    ScriptResult Count 值 10

创建归档文件

说明

根据提供的文件或目录列表创建归档文件。返回归档文件的位置。

重要提示:在 SaaS 环境中运行此操作时,文件会保存到 Python 执行 pod 的临时本地存储空间。此存储空间不是持久性的,文件可能会随着时间的推移而变得无法访问或被删除,尤其是在大规模部署中。为了实现可靠且持久的文件存储,我们强烈建议在远程代理上运行集成实例。

参数

参数 类型 默认值 必填 说明
归档类型 字符串 不适用 是 指定要创建的归档类型。支持的格式: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>"
    }

提取归档

说明

将归档文件解压缩到目录。

重要提示:在 SaaS 环境中运行此操作时,文件会保存到 Python 执行 pod 的临时本地存储空间。此存储空间不是持久性的,文件可能会随着时间的推移而变得无法访问或被删除,尤其是在大规模部署中。为了实现可靠且持久的文件存储,我们强烈建议在远程代理上运行集成实例。

参数

参数 类型 默认值 必填 说明
归档 字符串 不适用 是 指定要提取的归档文件的路径。支持的格式: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 或 7z 归档文件中提取文件。它能够通过提供的密码或暴力破解来提取受密码保护的文件。它使用文件实体的 attachment_id 属性从支持请求墙中提取文件并解压缩。

参数

参数 类型 默认值 必填 说明
在 JSON 结果中包含数据 复选框 尚未核查 否 指定是否要在 JSON 结果中以 Base64 值形式包含提取的数据。
创建实体 复选框 勾选 否 指定是否要根据提取的文件创建实体。
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 值。

重要提示:在 SaaS 环境中运行此操作时,文件会保存到 Python 执行 pod 的临时本地存储空间。此存储空间不是持久性的,文件可能会随着时间的推移而变得无法访问或被删除,尤其是在大规模部署中。为了实现可靠且持久的文件存储,我们强烈建议在远程代理上运行集成实例。

参数

参数 类型 默认值 必填 说明
文件路径 字符串 不适用 是 指定存储文件的文件路径。如果指定了多个路径,请使用英文逗号分隔符。

示例

在此场景中,/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。

重要提示:在 SaaS 环境中运行此操作时,文件会保存到 Python 执行 pod 的临时本地存储空间。此存储空间不是持久性的,文件可能会随着时间的推移而变得无法访问或被删除,尤其是在大规模部署中。为了实现可靠且持久的文件存储,我们强烈建议在远程代理上运行集成实例。

参数

参数 类型 默认值 必填 说明
文件名 字符串 不适用 是 指定要从中移除实体的文件的名称。

示例

在此场景中,系统会从位于 /tmp 目录中的 ioc_list.txt 中移除内部主机名实体标识符。

操作配置

参数 值
实体 内部主机名
文件名 ioc_list

操作结果

  • 脚本结果
    脚本结果名称 值选项 示例
    RemovedAllEntities True/False True

将 Base64 保存到文件

说明

将 Base64 字符串转换为文件。它支持以英文逗号分隔的文件名和 Base64 输入列表。

默认路径:/opt/siemplify/siemplify_server/Scripting/downloads/FILE_NAME

使用代理的默认路径:/opt/SiemplifyAgent/downloads/FILE_NAME

重要提示:在 SaaS 环境中运行此操作时,文件会保存到 Python 执行 pod 的临时本地存储空间。此存储空间不是持久性的,文件可能会随着时间的推移而变得无法访问或被删除,尤其是在大规模部署中。为了实现可靠且持久的文件存储,我们强烈建议在远程代理上运行集成实例。

参数

参数 类型 默认值 必填 说明
文件扩展名 字符串 不适用 否 指定要添加到文件名中的文件扩展名。
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 专业人士的解答。