Skip to content

Commit 2f856cf

Browse files
Merge pull request #50 from jinyoungmoonDEV/master
fix: fix vulnerable_ports method
2 parents 067e9da + 3051b6b commit 2f856cf

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

src/plugin/manager/ec2/security_group_manager.py

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,15 @@ def create_cloud_service(self, region, options, secret_data, schema):
6565
for _ip_range in in_rule.get("IpRanges", []):
6666
in_rule_copy = copy.deepcopy(in_rule)
6767
inbound_rules.append(
68-
self.custom_security_group_rule_info(
68+
self.custom_security_group_inbound_rule_info(
6969
in_rule_copy, _ip_range, "ip_ranges",vulnerable_ports
7070
)
7171
)
7272

7373
for _user_group_pairs in in_rule.get("UserIdGroupPairs", []):
7474
in_rule_copy = copy.deepcopy(in_rule)
7575
inbound_rules.append(
76-
self.custom_security_group_rule_info(
76+
self.custom_security_group_inbound_rule_info(
7777
in_rule_copy,
7878
_user_group_pairs,
7979
"user_id_group_pairs",
@@ -84,7 +84,7 @@ def create_cloud_service(self, region, options, secret_data, schema):
8484
for _ip_v6_range in in_rule.get("Ipv6Ranges", []):
8585
in_rule_copy = copy.deepcopy(in_rule)
8686
inbound_rules.append(
87-
self.custom_security_group_rule_info(
87+
self.custom_security_group_inbound_rule_info(
8888
in_rule_copy, _ip_v6_range, "ipv6_ranges",vulnerable_ports
8989
)
9090
)
@@ -96,7 +96,7 @@ def create_cloud_service(self, region, options, secret_data, schema):
9696
out_rule_copy = copy.deepcopy(out_rule)
9797
outbound_rules.append(
9898
self.custom_security_group_rule_info(
99-
out_rule_copy, _ip_range, "ip_ranges",vulnerable_ports
99+
out_rule_copy, _ip_range, "ip_ranges"
100100
)
101101
)
102102

@@ -106,15 +106,15 @@ def create_cloud_service(self, region, options, secret_data, schema):
106106
self.custom_security_group_rule_info(
107107
out_rule_copy,
108108
_user_group_pairs,
109-
"user_id_group_pairs",vulnerable_ports,
109+
"user_id_group_pairs",
110110
)
111111
)
112112

113113
for _ip_v6_range in out_rule.get("Ipv6Ranges", []):
114114
out_rule_copy = copy.deepcopy(out_rule)
115115
outbound_rules.append(
116116
self.custom_security_group_rule_info(
117-
out_rule_copy, _ip_v6_range, "ipv6_ranges",vulnerable_ports
117+
out_rule_copy, _ip_v6_range, "ipv6_ranges"
118118
)
119119
)
120120

@@ -165,7 +165,16 @@ def create_cloud_service(self, region, options, secret_data, schema):
165165
region_name=region,
166166
)
167167

168-
def custom_security_group_rule_info(self, raw_rule, remote, remote_type, vulnerable_ports):
168+
def custom_security_group_inbound_rule_info(self, raw_rule, remote, remote_type, vulnerable_ports):
169+
raw_rule = self.custom_security_group_rule_info(raw_rule, remote, remote_type)
170+
171+
protocol_display = raw_rule.get("protocol_display")
172+
173+
raw_rule.update({"vulnerable_ports": self._get_vulnerable_ports(protocol_display, raw_rule, vulnerable_ports)})
174+
175+
return raw_rule
176+
177+
def custom_security_group_rule_info(self, raw_rule, remote, remote_type):
169178
protocol_display = self._get_protocol_display(raw_rule.get("IpProtocol"))
170179
raw_rule.update(
171180
{
@@ -174,7 +183,6 @@ def custom_security_group_rule_info(self, raw_rule, remote, remote_type, vulnera
174183
"source_display": self._get_source_display(remote),
175184
"description_display": self._get_description_display(remote),
176185
remote_type: remote,
177-
"vulnerable_ports": self._get_vulnerable_ports(protocol_display, raw_rule, vulnerable_ports)
178186
}
179187
)
180188

@@ -296,19 +304,17 @@ def get_instance_name_from_tags(instance):
296304
@staticmethod
297305
def _get_vulnerable_ports(protocol_display: str, raw_rule: dict, vulnerable_ports: str):
298306
try:
307+
ports = [int(port.strip()) for port in vulnerable_ports.split(',')]
308+
299309
if protocol_display == "ALL":
300-
return [int(port.strip()) for port in vulnerable_ports.split(',')]
310+
return ports
301311

302312
to_port = raw_rule.get("ToPort")
303313
from_port = raw_rule.get("FromPort")
304314

305315
if to_port is None or from_port is None:
306316
return []
307317

308-
return [
309-
int(port.strip())
310-
for port in vulnerable_ports.split(',')
311-
if from_port <= int(port.strip()) <= to_port
312-
]
318+
return [port for port in ports if from_port <= port <= to_port]
313319
except ValueError:
314320
raise ERROR_VULNERABLE_PORTS(vulnerable_ports)

0 commit comments

Comments
 (0)