重新生成插件
当您想要更新插件模式以添加、删除或修改任何操作、触发器、改进的标题和描述等,而不丢失代码和手动更新JSON模式时,就会发生再生。
的兼容性
最新的插件架构是V2,这是指SDK和icon-plugin工具的改进。改进将插件组件(如动作和触发器)拆分到它们自己的目录中。对于每个目录,一个代码(例如:action.py)和模式(例如:schema.py)文件存在。模式文件是直接生成的plugin.spec.yaml(真理来源),不应该由用户修改。在这种设计中,开发人员只需要修改代码文件。
一个python插件的一个例子V2兼容:
1
base64
2
├──Dockerfile.
3.
├──makefile.
4.
├──本
5.
│└──komand_base64
6.
├──komand-base64-0.2.2.tar.gz
7.
├──komand_base64
8.
│├──__init__.py.
9.
│├──动作
10
││├──__init__.py
11
│├─rammstein - du hast(2)——cat sound效果器整理www.catsound.cat
12
││││├─rammstein - du hast(2)——cat sound效果器整理www.catsound.cat
13
││││──动作
14
││││├─ramm
15
│││├─rammstein - du hast (3
16
││├──__init__.py
17
│├─rammstein - du hast(2)——cat sound效果器整理www.catsound.cat
18
│││├─rammstein - du hast (3
19
│├──连接
20.
││├──__init__.py
21
││││├─rammstein - du hast (2
22
│││├─rammstein - du hast (3
23
│├──触发器
24
│││├─__init__.py
25
│└──跑龙套
26
│└──__init__ . py
27
├──插件.spec.yaml.
28
├──让
29
sound效果器整理www.jnda.com──www.jnda.com
30.
├──setup . py
31
└──测试
32
├──decode.json
33
└──编码.JSON.
- 2016年10月1日之后开发的插件有能力使用较旧的GIT方法进行再生。
- V1的方法重新生成插件
- 2018年1月1日后开发的插件或已移植到的插件
V2能够使用更新的方法重新生成。- 插件
V2建筑提供了天然的再生icon-plugin生成——再生. - 我们所有的插件都已移植到
V2但是,如果他们没有,您的自定义插件可能没有,最好首先将它们移居,以便在长远来看。
- 插件
生成命令
正如SDK规范文档中所描述的,插件骨架是通过运行以下命令生成的:
生成python plugin.spec.yaml
再生命令
如果您决定通过编辑修改插件的方案plugin.spec.yaml,您将需要重新生成插件框架使用使再生在插件目录中。的使再生Target是一个快捷方式,它调用完整的重新生成命令图标-插件生成python——重新生成.
过程
下面的过程将自动将新的模式更改从plugin.spec.yaml生效:
- 更新
plugin.spec.yaml文件的新模式 - 运行
使再生 - 更新所需的任何代码文件(例如:action.py)
例子
下面是一个通过更新模式来重新生成插件的示例(plugin.spec.yaml)支持:
- 查找恶意软件哈希的新动作
- 一个新的插件描述
- 一个新的插件版本
1
$ vim plugin.spec.yaml#更新了架构
2
美元使再生
3.
图标-插件生成python——重新生成
4.
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/Makefile
5.
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/.gitignore
6.
info写入文件:/users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/setup.py
7.
info写入文件:/users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/bin/komand_cymon
8.
info写入文件:/users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/connection/schema.py
9.
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/domain_blacklist/schema.py
10
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/domain_blacklist/__init__.py
11
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/malware_lookup/action.py
12
info [0000]写作文件:/users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/malware_lookup/schema.py
13
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/malware_lookup/__init__.py
14
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/domain_lookup/schema.py
15
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/domain_lookup/__init__.py
16
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/address_lookup/schema.py
17
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/address_lookup/__init__.py
18
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/url_lookup/schema.py
19
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/url_lookup/__init__.py
20.
info [0000]写入文件:/users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/address_blacklist/schema.py
21
info [0000]写作文件:/users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/address_blacklist/__init__.py
22
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/actions/__init__.py
23
info写入文件:/users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/triggers/poll_address_blacklist/schema.py
24
info写入文件:/users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/triggers/poll_address_blacklist/__init__.py
25
info [0000]写作文件:/users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/triggers/poll_domain_blacklist/schema.py
26
INFO[0000]正在写入文件:/Users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/triggers/poll_domain_blacklist/__init__.py
27
info [0000]写入文件:/users/jschipp/go/src/github.com/rapid7/insightconnect-plugins/cymon/komand_cymon/triggers/__init__.py
28
信息[0000]代码再生完成!
这是一个变化列表git状态.您可以看到修改了一些文件以及malware_lookup操作目录的新添加。
1
git美元地位
2
在部门主
3.
你的分支是最新的'origin/master'。
4.
5.
提交未上演的更改:
6.
(使用"git add …"来更新将要提交的内容)
7.
(使用"git checkout——…"来丢弃工作目录中的更改)
8.
9.
修改:bin / komand_cymon
10
修改:Komand_Cymon / Actions / __ init__.py
11
修改:plugin.spec.yaml.
12
修改:setup.py.
13
14
未经触发的文件:
15
(使用"git add …"来包含将要提交的内容)
16
17
komand_cymon /动作/ malware_lookup /
我们可以看到使用的确切变化git diff.请注意,描述和版本在多个文件中更新,具体:cymon / bin / komand_cymon和setup . py.这个新操作导致了新目录的创建komand_cymon /动作/ malware_lookup /它包含一个action.py和schema.py文件。输出的其余部分是对新操作的引用。
1
Diff --git A / Cymon / Bin / Komand_Cymon B / Cymon / Bin / Komand_Cymon
2
指数ccd4c109d . .7 aed3ab00 100755
3.
——/ cymon / bin / komand_cymon
4.
+ + + b / cymon / bin / komand_cymon
5.
@@从komand_cymon导入连接,动作,触发器
6.
7.
名称='cymon'
8.
供应商= ' rapid7 '
9.
-version ='0.1.4'
10
-描述= '赛门开放威胁情报'
11
+ =“1.0.0版本
12
+描述= 'Cymon是最大的关于钓鱼、恶意软件、僵尸网络和其他恶意活动的开源安全报告跟踪者'
13
14
15
类KomandCymon (komand.Plugin):
16
@@ -31,6 +31,8,8 @ @类komandcymon(komand.plugin):
17
18
self.add_action (actions.DomainLookup ())
19
20.
+ self.add_action (actions.MalwareLookup ())
21
+
22
self.add_action (actions.UrlLookup ())
23
24
25
diff --git a / cymon / komand_cymon / apaction / __ init__.py b / cymon / komand_cymon /操作/ __ init__.py
26
指数41 ac95ec7 . .44 a025ccb 100755
27
——/ cymon komand_cymon /行动/ __init__ . py
28
+++ b / cymon / komand_cymon / apactions / __ init__.py
29
@@ -3,4 +3,5 @@ from .address_blacklist。行动进口AddressBlacklist
30.
从.address_lookup.action导入addresslookup
31
来自.domain_blacklist.action导入domainblacklist
32
从.domain_lookup。行动进口DomainLookup
33
+从.malware_lookup.action导入malwarelookup
34
来自.url_lookup.action导入URLLookup
35
diff - git / cymon / plugin.spec。yaml b / cymon / plugin.spec.yaml
36
指数a435d9eaf . .23 dda41a8 100644
37
——/ cymon / plugin.spec.yaml
38
+++ b / cymon / plugin.spec.yaml
39
@@ -1,8 +1,8 @@
40
plugin_spec_version: v2
41
名称:Cymon.
42
标题:Cymon
43
- 评估:“Cymon开放威胁情报”
44
- 转变:0.1.4
45
+描述:“Cymon是最大的关于钓鱼、恶意软件、僵尸网络和其他恶意活动的开源安全报告跟踪者”
46
+版本:1.0.0
47
供应商:rapid7
48
@@ -529,3 +529,14 @@ actions:
49
URL:
50
类型:“[]字符串”
51
标题:Cymon URL引用
52
+ malware_lookup:
53
+描述:查找恶意软件哈希
54
+输入:
55
+散列:
56
+类型:字符串
57
+ description: MD5或SHA1哈希
58
+必填:真实
59
+输出:
60
+发现:
61
+类型:布尔
62
+标题:恶意软件发现
63
——git a/cymon/setup.py b/cymon/setup.py
64
指数e72761182 . .6 e8117680 100755
65
——/ cymon / setup . py
66
+ + + b / cymon / setup . py
67
@@ -3,8 +3,8 @fulfuluptools导入设置,find_packages
68
69
70
设置(name = ' cymon-komand-plugin ',
71
——version =“0.1.4”,
72
- description='Cymon Open Threat Intelligence',
73
+ =的1.0.0版本,
74
+ description='Cymon是最大的关于钓鱼、恶意软件、僵尸网络和其他恶意活动的开源安全报告跟踪者',
75
作者= ' komand ',
76
author_email = ",
77
url = ",
此外,您将看到plugin.spec.yaml文件本身,因为它是真相的来源,我们手动创建这些更改。
现在,将您的代码添加到新的komand_cymon /动作/ malware_lookup / action.py文件,更新插件规范的帮助部分(使帮助)测试,并使用以下内容完成更改:
1
$ git add . txt。
2
$ git comput-m“具有新描述和新的恶意软件查找操作的”重新生成Cymon“