Skip to content

Commit ec9ae25

Browse files
authored
Merge pull request #1844 from HXSecurity/beta
Beta
2 parents 8e8a30a + 1046de5 commit ec9ae25

File tree

12 files changed

+361
-27
lines changed

12 files changed

+361
-27
lines changed

deploy/commands/management/commands/load_hook_strategy.py

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def handle(self, *args, **options):
2626
with open(os.path.join(POLICY_DIR, "vul_strategy.json")) as fp:
2727
full_strategies = json.load(fp, object_pairs_hook=OrderedDict)
2828
if os.path.exists(os.path.join(POLICY_DIR, "sensitive_info_strategy.json")):
29-
with open(os.path.exists(os.path.join(POLICY_DIR, "sensitive_info_strategy.json"))) as fp:
29+
with open(os.path.join(POLICY_DIR, "sensitive_info_strategy.json")) as fp:
3030
full_strategies.extend(json.load(fp, object_pairs_hook=OrderedDict))
3131
strategy_dict = {}
3232
for strategy in full_strategies:
@@ -115,6 +115,8 @@ def handle(self, *args, **options):
115115
hooktype_obj.save()
116116
hooktype_dict[f"{hook_type['value']}-{hook_type['type']}"] = hooktype_obj
117117

118+
HookStrategy.objects.filter(language_id=v, system_type=1, modified=False).delete()
119+
HookStrategy.objects.filter(language_id=v, system_type=1).update(system_type=0)
118120
with open(os.path.join(POLICY_DIR, f"{k.lower()}_full_policy.json")) as fp:
119121
full_policy = json.load(fp, object_pairs_hook=OrderedDict)
120122
for policy in full_policy:
@@ -124,18 +126,16 @@ def handle(self, *args, **options):
124126
policy_strategy = strategy_dict[policy["value"]]
125127
for hook_strategy in policy["details"]:
126128
if HookStrategy.objects.filter(
127-
value=hook_strategy["value"], type=hook_strategy["type"], language_id=v, system_type=1
128-
).exists():
129-
# 如果已经存在规则,跳过创建
130-
continue
131-
if HookStrategy.objects.filter(
132-
value=hook_strategy["value"], type=hook_strategy["type"], language_id=v, system_type=0
129+
value=hook_strategy["value"], type=hook_strategy["type"], language_id=v
133130
):
134-
# 如果已经存在用户自定义规则,设置为系统规则,跳过创建
131+
# 如果已经存在规则,设置为系统规则,跳过创建
135132
hook_strategy_obj = HookStrategy.objects.filter(
136-
value=hook_strategy["value"], type=hook_strategy["type"], language_id=v, system_type=0
133+
value=hook_strategy["value"],
134+
type=hook_strategy["type"],
135+
language_id=v,
137136
).get()
138137
hook_strategy_obj.system_type = 1
138+
hook_strategy_obj.modified = True
139139
hook_strategy_obj.save()
140140
continue
141141
del hook_strategy["language"]
@@ -147,18 +147,16 @@ def handle(self, *args, **options):
147147
policy_hook_type = hooktype_dict[f"{policy['value']}-{policy['type']}"]
148148
for hook_strategy in policy["details"]:
149149
if HookStrategy.objects.filter(
150-
value=hook_strategy["value"], type=hook_strategy["type"], language_id=v, system_type=1
151-
).exists():
152-
# 如果已经存在规则,跳过创建
153-
continue
154-
if HookStrategy.objects.filter(
155-
value=hook_strategy["value"], type=hook_strategy["type"], language_id=v, system_type=0
150+
value=hook_strategy["value"],
151+
type=hook_strategy["type"],
152+
language_id=v,
156153
):
157-
# 如果已经存在用户自定义规则,设置为系统规则,跳过创建
154+
# 如果已经存在规则,设置为系统规则,跳过创建
158155
hook_strategy_obj = HookStrategy.objects.filter(
159-
value=hook_strategy["value"], type=hook_strategy["type"], language_id=v, system_type=0
156+
value=hook_strategy["value"], type=hook_strategy["type"], language_id=v
160157
).get()
161158
hook_strategy_obj.system_type = 1
159+
hook_strategy_obj.modified = True
162160
hook_strategy_obj.save()
163161
continue
164162
del hook_strategy["language"]
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Generated by Django 3.2.20 on 2023-09-18 14:13
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("dongtai_common", "0025_alter_iastagentrequestchainstopographvec_unique_together"),
9+
]
10+
11+
operations = [
12+
migrations.AlterField(
13+
model_name="iastassetvulv2",
14+
name="affected_versions",
15+
field=models.JSONField(help_text="影响版本"),
16+
),
17+
migrations.AlterField(
18+
model_name="iastassetvulv2",
19+
name="change_time",
20+
field=models.IntegerField(help_text="修改时间"),
21+
),
22+
migrations.AlterField(
23+
model_name="iastassetvulv2",
24+
name="create_time",
25+
field=models.IntegerField(help_text="创建时间"),
26+
),
27+
migrations.AlterField(
28+
model_name="iastassetvulv2",
29+
name="level",
30+
field=models.IntegerField(
31+
blank=True,
32+
choices=[(4, "严重"), (3, "高危"), (2, "中危"), (1, "低危"), (0, "无风险")],
33+
db_column="level_id",
34+
default=1,
35+
help_text="漏洞等级",
36+
),
37+
),
38+
migrations.AlterField(
39+
model_name="iastassetvulv2",
40+
name="published_time",
41+
field=models.IntegerField(help_text="发布时间"),
42+
),
43+
migrations.AlterField(
44+
model_name="iastassetvulv2",
45+
name="references",
46+
field=models.JSONField(default=list, help_text="引用文章"),
47+
),
48+
migrations.AlterField(
49+
model_name="iastassetvulv2",
50+
name="unaffected_versions",
51+
field=models.JSONField(help_text="不影响版本"),
52+
),
53+
migrations.AlterField(
54+
model_name="iastassetvulv2",
55+
name="update_time",
56+
field=models.IntegerField(help_text="更新时间"),
57+
),
58+
migrations.AlterField(
59+
model_name="iastassetvulv2",
60+
name="vul_codes",
61+
field=models.JSONField(help_text="漏洞编号"),
62+
),
63+
migrations.AlterField(
64+
model_name="iastassetvulv2",
65+
name="vul_detail",
66+
field=models.TextField(help_text="漏洞详情"),
67+
),
68+
migrations.AlterField(
69+
model_name="iastassetvulv2",
70+
name="vul_detail_zh",
71+
field=models.TextField(blank=True, help_text="漏洞详情(中文)"),
72+
),
73+
migrations.AlterField(
74+
model_name="iastassetvulv2",
75+
name="vul_id",
76+
field=models.CharField(blank=True, help_text="漏洞id", max_length=255, unique=True),
77+
),
78+
migrations.AlterField(
79+
model_name="iastassetvulv2",
80+
name="vul_name",
81+
field=models.CharField(blank=True, help_text="漏洞名", max_length=255),
82+
),
83+
migrations.AlterField(
84+
model_name="iastassetvulv2",
85+
name="vul_name_zh",
86+
field=models.CharField(blank=True, help_text="漏洞名(中文)", max_length=255),
87+
),
88+
migrations.AlterField(
89+
model_name="iastassetvulv2",
90+
name="vul_type",
91+
field=models.JSONField(help_text="漏洞类型"),
92+
),
93+
migrations.AlterField(
94+
model_name="iastsensitiveinforule",
95+
name="pattern",
96+
field=models.TextField(default=""),
97+
),
98+
]
Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
# Generated by Django 3.2.20 on 2023-09-19 12:33
2+
3+
from django.db import migrations
4+
5+
6+
def update_admin_role(apps, schema_editor):
7+
IastRoleV2 = apps.get_model("dongtai_common", "IastRoleV2")
8+
9+
new_admin_permission = {
10+
"routes": [
11+
"dashboard",
12+
"Dashboard",
13+
"deployment",
14+
"deploy",
15+
"project",
16+
"projectManage",
17+
"vulnList",
18+
"scaList",
19+
"agentManage",
20+
"scanList",
21+
"integrationManagement",
22+
"strategyBox",
23+
"strategyManage",
24+
"templateManage",
25+
"hookRule",
26+
"sensitiveManage",
27+
"projectTemplate",
28+
"systemSettings",
29+
"search",
30+
"center",
31+
"reportCenter",
32+
"vulnSharing",
33+
"links",
34+
"authority",
35+
"roleSetting",
36+
"team",
37+
"account",
38+
"license",
39+
"changeLogo",
40+
"logManage",
41+
"about",
42+
],
43+
"buttons": [
44+
{"id": 1, "label": "新增项目"},
45+
{"id": 2, "label": "删除项目"},
46+
{"id": 3, "label": "编辑项目"},
47+
{"id": 4, "label": "生成报告"},
48+
{"id": 5, "label": "删除漏洞"},
49+
{"id": 6, "label": "关联漏洞"},
50+
{"id": 7, "label": "漏洞分享"},
51+
{"id": 8, "label": "状态变更"},
52+
{"id": 9, "label": "集成同步"},
53+
{"id": 58, "label": "下载调用链"},
54+
{"id": 59, "label": "请求重放"},
55+
{"id": 10, "label": "组件分享"},
56+
{"id": 11, "label": "启用"},
57+
{"id": 12, "label": "暂停"},
58+
{"id": 13, "label": "导出日志"},
59+
{"id": 14, "label": "批量升级"},
60+
{"id": 15, "label": "主动验证"},
61+
{"id": 16, "label": "熔断配置"},
62+
{"id": 17, "label": "IDE 插件"},
63+
{"id": 18, "label": "CI/CD 集成"},
64+
{"id": 19, "label": "缺陷管理"},
65+
{"id": 20, "label": "消息通知"},
66+
{"id": 21, "label": "其他"},
67+
{"id": 22, "label": "新增策略"},
68+
{"id": 23, "label": "编辑策略"},
69+
{"id": 24, "label": "删除策略"},
70+
{"id": 25, "label": "修改状态"},
71+
{"id": 26, "label": "新增模版"},
72+
{"id": 27, "label": "编辑模版"},
73+
{"id": 28, "label": "删除模版"},
74+
{"id": 29, "label": "修改状态"},
75+
{"id": 30, "label": "添加规则类型"},
76+
{"id": 31, "label": "添加规则"},
77+
{"id": 32, "label": "删除规则"},
78+
{"id": 33, "label": "修改状态"},
79+
{"id": 34, "label": "全部启用"},
80+
{"id": 35, "label": "全部禁用"},
81+
{"id": 36, "label": "全部删除"},
82+
{"id": 37, "label": "新增规则"},
83+
{"id": 38, "label": "编辑规则"},
84+
{"id": 39, "label": "删除规则"},
85+
{"id": 40, "label": "修改状态"},
86+
{"id": 41, "label": "新增配置"},
87+
{"id": 42, "label": "编辑模版"},
88+
{"id": 57, "label": "删除模版"},
89+
{"id": 43, "label": "只读"},
90+
{"id": 44, "label": "修改"},
91+
{"id": 45, "label": "新增角色"},
92+
{"id": 46, "label": "删除角色"},
93+
{"id": 47, "label": "编辑角色"},
94+
{"id": 48, "label": "新增项目组"},
95+
{"id": 49, "label": "删除项目组"},
96+
{"id": 50, "label": "编辑项目组"},
97+
{"id": 51, "label": "查看详情"},
98+
{"id": 52, "label": "新增账号"},
99+
{"id": 53, "label": "删除账号"},
100+
{"id": 54, "label": "编辑账号"},
101+
{"id": 55, "label": "查看详情"},
102+
{"id": 56, "label": "消息通知"},
103+
],
104+
}
105+
new_user_permission = {
106+
"routes": [
107+
"dashboard",
108+
"Dashboard",
109+
"deployment",
110+
"deploy",
111+
"project",
112+
"projectManage",
113+
"vulnList",
114+
"scaList",
115+
"agentManage",
116+
"scanList",
117+
"integrationManagement",
118+
"strategyBox",
119+
"strategyManage",
120+
"templateManage",
121+
"hookRule",
122+
"sensitiveManage",
123+
"projectTemplate",
124+
"systemSettings",
125+
"search",
126+
"center",
127+
"reportCenter",
128+
"vulnSharing",
129+
"links",
130+
"authority",
131+
"roleSetting",
132+
"team",
133+
"account",
134+
"license",
135+
"changeLogo",
136+
"logManage",
137+
"about",
138+
],
139+
"buttons": [
140+
{"id": 1, "label": "新增项目"},
141+
{"id": 2, "label": "删除项目"},
142+
{"id": 3, "label": "编辑项目"},
143+
{"id": 4, "label": "生成报告"},
144+
{"id": 5, "label": "删除漏洞"},
145+
{"id": 6, "label": "关联漏洞"},
146+
{"id": 7, "label": "漏洞分享"},
147+
{"id": 8, "label": "状态变更"},
148+
{"id": 9, "label": "集成同步"},
149+
{"id": 58, "label": "下载调用链"},
150+
{"id": 10, "label": "组件分享"},
151+
{"id": 11, "label": "启用"},
152+
{"id": 12, "label": "暂停"},
153+
{"id": 13, "label": "导出日志"},
154+
{"id": 14, "label": "批量升级"},
155+
{"id": 15, "label": "主动验证"},
156+
{"id": 16, "label": "熔断配置"},
157+
{"id": 17, "label": "IDE 插件"},
158+
{"id": 18, "label": "CI/CD 集成"},
159+
{"id": 19, "label": "缺陷管理"},
160+
{"id": 20, "label": "消息通知"},
161+
{"id": 21, "label": "其他"},
162+
{"id": 22, "label": "新增策略"},
163+
{"id": 23, "label": "编辑策略"},
164+
{"id": 24, "label": "删除策略"},
165+
{"id": 25, "label": "修改状态"},
166+
{"id": 26, "label": "新增模版"},
167+
{"id": 27, "label": "编辑模版"},
168+
{"id": 28, "label": "删除模版"},
169+
{"id": 29, "label": "修改状态"},
170+
{"id": 30, "label": "添加规则类型"},
171+
{"id": 31, "label": "添加规则"},
172+
{"id": 32, "label": "删除规则"},
173+
{"id": 33, "label": "修改状态"},
174+
{"id": 34, "label": "全部启用"},
175+
{"id": 35, "label": "全部禁用"},
176+
{"id": 36, "label": "全部删除"},
177+
{"id": 37, "label": "新增规则"},
178+
{"id": 38, "label": "编辑规则"},
179+
{"id": 39, "label": "删除规则"},
180+
{"id": 40, "label": "修改状态"},
181+
{"id": 41, "label": "新增配置"},
182+
{"id": 42, "label": "编辑模版"},
183+
{"id": 57, "label": "删除模版"},
184+
{"id": 43, "label": "只读"},
185+
{"id": 44, "label": "修改"},
186+
{"id": 45, "label": "新增角色"},
187+
{"id": 46, "label": "删除角色"},
188+
{"id": 47, "label": "编辑角色"},
189+
{"id": 48, "label": "新增项目组"},
190+
{"id": 49, "label": "删除项目组"},
191+
{"id": 50, "label": "编辑项目组"},
192+
{"id": 51, "label": "查看详情"},
193+
{"id": 52, "label": "新增账号"},
194+
{"id": 53, "label": "删除账号"},
195+
{"id": 54, "label": "编辑账号"},
196+
{"id": 55, "label": "查看详情"},
197+
{"id": 56, "label": "消息通知"},
198+
],
199+
}
200+
IastRoleV2.object.filter(name="管理员", is_admin=True).update(permission=new_admin_permission)
201+
IastRoleV2.object.filter(name="普通用户", is_admin=True).update(permission=new_user_permission)
202+
203+
204+
class Migration(migrations.Migration):
205+
dependencies = [
206+
("dongtai_common", "0026_auto_20230918_1413"),
207+
]
208+
209+
operations = []
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Generated by Django 3.2.20 on 2023-09-19 20:06
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("dongtai_common", "0027_auto_20230919_1233"),
9+
]
10+
11+
operations = [
12+
migrations.AddField(
13+
model_name="hookstrategy",
14+
name="modified",
15+
field=models.BooleanField(default=False),
16+
),
17+
]

0 commit comments

Comments
 (0)