@@ -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