W5-SOAR进阶使用
文章介绍了如何自定义编写W5-SOAR的APP,并详细说明了APP的目录结构、app.json配置文件的作用以及如何添加动作和参数以实现特定功能。 2025-7-28 09:39:40 Author: www.freebuf.com(查看原文) 阅读量:1 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

本文介绍自定义编写W5-SOAR的APP,通过编写APP可以实现我们特定运营场景的功能。

2.1 引用架构介绍

w5的app目录位于:/w5/apps/"appname"

1753694915_688742c3623554785a6f0.png!small?1753694913614

这里以base64为例,看一下它的结构

base64/                          #应用目录
├── app.json #APP 配置文件
├── icon.png                     #APP 图标
├── main #APP 代码目录
│   ├── __init__.py #根据需要添加即可,不必要
│   └── run.py #APP 入口文件
└── readme.md                    #APP 说明文件

1753694961_688742f1a44f5eff8026f.png!small?1753694960125

2.2 app.json

app.json作为应用的配置文件,配置引用的功能:

{
"identification": "w5soar",               // w5soar 签名,无需更改,必须存在
"is_public": true,                        // 是否为公开 APP,设置 false 为私有 APP
"name": "Hello World",                     // APP 名称
"version": "0.1",                         // APP 版本
"description": "W5 SOAR - Hello World",    // APP 描述
"type": "基本应用",                        // APP 分类
"action": [                               // APP 动作列表
{
"name": "HelloWorld",                  // APP 动作名称
"func": "hello_world"                  // 动作对应的函数名
}
],
"args": {                                 // 动作参数
"hello_world": [                         // 动作对应的函数名
{
"key": "name",                      // 动作参数名
"type": "text",                     // 动作参数类型
"required": true                    // 是否是必填项
}
]
}
}

多个动作

修改action字段

"action": [                              // APP 动作列表
{
"name": "HelloWorld",                 // APP 动作名称
"func": "hello_world"                 // 动作对应的函数名
},
{
"name": "test",                      // APP 动作名称
"func": "app_test"                   // 动作对应的函数名
},
{
"name": "demo",                      // APP 动作名称
"func": "app_demo"                   // 动作对应的函数名
}
],

多个动作参数

"args": {                                 // 动作参数
"hello_world": [                         // 动作对应的函数名
{
"key": "name",                      // 动作参数名
"type": "text",                     // 动作参数类型
"required": true                    // 是否是必填项
}
],
"app_test": [                           // 动作对应的函数名
{
"key": "name",                      // 动作参数名
"type": "text",                     // 动作参数类型
"required": true                    // 是否是必填项
},
{
"key": "sex",                       // 动作参数名
"type": "text",                     // 动作参数类型
"required": true                    // 是否是必填项
}
],
"app_demo": [                           // 动作对应的函数名
{
"key": "name",                      // 动作参数名
"type": "text",                     // 动作参数类型
"required": true                    // 是否是必填项
},
{
"key": "age",                       // 动作参数名
"type": "text",                     // 动作参数类型
"required": false                   // 是否是必填项
},
{
"key": "test",                      // 动作参数名
"type": "text",                     // 动作参数类型
"required": false                   // 是否是必填项
}
]
}

参数类型

"args": {                                 // 动作参数
"app_demo": [                           // 动作对应的函数名
{
"key": "name",                      // 动作参数名
"type": "text",                     // 动作参数类型
"default": "W5",                    // 参数默认值,不写默认为空
"required": true                    // 是否是必填项
},
{
"key": "age",                       // 动作参数名
"type": "number",                   // 动作参数类型
"default": 18,                      // 参数默认值,不写默认为空
"required": true                    // 是否是必填项
},
{
"key": "desc",                      // 动作参数名
"type": "textarea",                 // 动作参数类型
"required": true                    // 是否是必填项
},
{
"key": "type",                      // 动作参数名
"type": "select",                   // 动作参数类型
"default": "test",                  // 参数默认值,不写默认不选择
"data": [                           // 下拉列表
"test",
"test2",
"test3",
"test4"
],
"required": true                    // 是否是必填项
}
]
}

支持类型

免责声明

1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。

2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。

3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。

已在FreeBuf发表 0 篇文章

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/sectool/441760.html
如有侵权请联系:admin#unsafe.sh