From 8cc6808a4f436b260ffa2acfc15c451a2150ca8a Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Sat, 17 Dec 2022 19:05:51 +0100
Subject: [PATCH] update project

---
 agent_based/cisco_vpn_tunnel.py |  53 +++++++++++++-------------------
 cisco_vpn_tunnel.mkp            | Bin 6329 -> 6340 bytes
 packages/cisco_vpn_tunnel       |   2 +-
 3 files changed, 23 insertions(+), 32 deletions(-)

diff --git a/agent_based/cisco_vpn_tunnel.py b/agent_based/cisco_vpn_tunnel.py
index 856187c..1f8bc1c 100644
--- a/agent_based/cisco_vpn_tunnel.py
+++ b/agent_based/cisco_vpn_tunnel.py
@@ -19,6 +19,7 @@
 # 2022-01-19: added workaround for not matching IKE_OID_end and cipSecTunIkeTunnelIndexfor not matching
 #             IKE_OID_end and cipSecTunIkeTunnelIndex, try to match IPSec nad IKE sa by remote address
 # 2022-04-01: changed IPSec SA count output to check levels
+# 2022-12-17: checked input values for isdigit()
 
 # snmpwalk sample
 #
@@ -68,14 +69,8 @@ class IpsecSa:
 
 @dataclass
 class IkeSa:
-    # local_type: int
-    # local_value: str
     local_addr: str
-    # local_name: str
-    # remote_type: int
-    # remote_value: str
     remote_addr: str
-    # remote_name: str
     active_time: int
     in_octets: int
     in_pkts: int
@@ -156,7 +151,7 @@ def parse_cisco_vpn_tunnel(string_table: List[StringTable]) -> Dict[str, IkeSa]:
 
     # summarize IPSec SAs, ASSUMPTION: except for counters all SA attributes are identical per IKE index
     for ike_tunnel_index, ike_tunnel_alive, tun_remote_addr, active_time, hc_in_octets, in_pkts, in_drop_pkts, \
-        hc_out_octets, out_pkts, out_drop_pkts in ipsec_tunnel_entry:
+            hc_out_octets, out_pkts, out_drop_pkts in ipsec_tunnel_entry:
 
         if ike_tunnel_index.isdigit():
             ipsec_sa = ipsec_sa_summary.setdefault(
@@ -164,13 +159,13 @@ def parse_cisco_vpn_tunnel(string_table: List[StringTable]) -> Dict[str, IkeSa]:
                 IpsecSa(0, 0, 0, 0, 0, 0, 0, 0, 0, tun_remote_addr)
             )
             ipsec_sa.sa_count += 1
-            ipsec_sa.hc_in_octets += int(hc_in_octets)
-            ipsec_sa.in_pkts += int(in_pkts)
-            ipsec_sa.in_drop_pkts += int(in_drop_pkts)
-            ipsec_sa.hc_out_octets += int(hc_out_octets)
-            ipsec_sa.out_pkts += int(out_pkts)
-            ipsec_sa.out_drop_pkts += int(out_drop_pkts)
-            if int(active_time) // 100 > ipsec_sa.active_time:
+            ipsec_sa.hc_in_octets += int(hc_in_octets) if hc_in_octets.isdigit() else 0
+            ipsec_sa.in_pkts += int(in_pkts) if in_pkts.isdigit() else 0
+            ipsec_sa.in_drop_pkts += int(in_drop_pkts) if in_drop_pkts.isdigit() else 0
+            ipsec_sa.hc_out_octets += int(hc_out_octets) if hc_out_octets.isdigit() else 0
+            ipsec_sa.out_pkts += int(out_pkts) if out_pkts.isdigit() else 0
+            ipsec_sa.out_drop_pkts += int(out_drop_pkts) if out_drop_pkts.isdigit() else 0
+            if active_time.isdigit and (int(active_time) // 100 > ipsec_sa.active_time):
                 ipsec_sa.active_time = int(active_time) // 100
 
     # IKE SA
@@ -185,26 +180,21 @@ def parse_cisco_vpn_tunnel(string_table: List[StringTable]) -> Dict[str, IkeSa]:
                 remote_addr = remote_value
             if len(remote_addr.split('.')) == 4:
                 ike_sa = IkeSa(
-                    # local_type=int(local_type),
-                    # local_value=local_value,
                     local_addr=_cisco_vpn_tunnel_render_ipv4_address(local_addr),
-                    # local_name=local_name,
-                    # remote_type=int(remote_type),
-                    # remote_value=remote_value,
                     remote_addr=remote_addr,
-                    # remote_name=remote_name,
-                    active_time=int(active_time) // 100,
-                    in_octets=int(in_octets),
-                    in_pkts=int(in_pkts),
-                    in_drop_pkts=int(in_droppkts),
-                    out_octets=int(out_octets),
-                    out_pkts=int(out_pkts),
-                    out_drop_pkts=int(out_droppkts),
-                    status=int(status),
-                    nego_mode=int(nego_mode),
+                    active_time=int(active_time) // 100 if active_time.isdigit() else 0,
+                    in_octets=int(in_octets) if in_octets.isdigit() else 0,
+                    in_pkts=int(in_pkts) if in_pkts.isdigit() else 0,
+                    in_drop_pkts=int(in_droppkts) if in_droppkts.isdigit() else 0,
+                    out_octets=int(out_octets) if out_octets.isdigit() else 0,
+                    out_pkts=int(out_pkts) if out_pkts.isdigit() else 0,
+                    out_drop_pkts=int(out_droppkts) if out_droppkts.isdigit() else 0,
+                    status=int(status) if status.isdigit() else 0,
+                    nego_mode=int(nego_mode) if nego_mode.isdigit() else 0,
                     # if/else is workaround for not matching IKE_OID_end and cipSecTunIkeTunnelIndex
                     # try to match IPSec sa by remote address
-                    ipsec_summary=ipsec_sa_summary.get(index) if ipsec_sa_summary.get(index) is not None else _get_ipsec_sa_by_remote_address(save_remote_addr, ipsec_sa_summary)
+                    ipsec_summary=ipsec_sa_summary.get(index) if ipsec_sa_summary.get(
+                        index) is not None else _get_ipsec_sa_by_remote_address(save_remote_addr, ipsec_sa_summary)
                 )
                 vpntunnel.update({remote_addr: ike_sa})
 
@@ -416,7 +406,8 @@ register.check_plugin(
     check_default_parameters={
         'state': 3,  # default state for tunnel not found
         'missing_ipsec_sa_state': 1,
-        'tunnels': [],  # list of tunnel specific not found states ('<ip-address>', '<alias>', <not_found_state>, <no_ipsec_sa>)
+        'tunnels': [],  # list of tunnel specific not found states
+                        # ('<ip-address>', '<alias>', <not_found_state>, <no_ipsec_sa>)
     },
     check_ruleset_name='cisco_vpn_tunnel',
 )
diff --git a/cisco_vpn_tunnel.mkp b/cisco_vpn_tunnel.mkp
index c2791813b414eee4ce3a879373facdb3fb64b616..48af5d5949ccf1ac6f93fd815336c313d73be923 100644
GIT binary patch
literal 6340
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

literal 6329
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
WeYyX8J?hGaA&@d(C%}!v!TkrhAWS&`

diff --git a/packages/cisco_vpn_tunnel b/packages/cisco_vpn_tunnel
index 7c6ea78..8760647 100644
--- a/packages/cisco_vpn_tunnel
+++ b/packages/cisco_vpn_tunnel
@@ -11,7 +11,7 @@
  'name': 'cisco_vpn_tunnel',
  'num_files': 3,
  'title': 'Monitor Cisco VPN Tunnel',
- 'version': '20220401.v0.3a',
+ 'version': '20221217.v0.3b',
  'version.min_required': '2.0.0',
  'version.packaged': '2021.09.20',
  'version.usable_until': None}
\ No newline at end of file
-- 
GitLab