Problem Overview
When Symantec Endpoint Protection (SEP) is installed on an engineering workstation running Siemens SIMATIC Manager, Primary Setup Tool (PST), or TIA Portal, the "Accessible Nodes" / "Find Nodes" function fails to return any S7-CPU, S7-1200, S7-1500, ET 200, SCALANCE switch, or HMI Panel. The same engineering station can usually reach the same devices via "ping" or via direct IP entry, but the broadcast-based discovery mechanism returns an empty list. Disabling the SEP firewall restores discovery immediately, confirming that the endpoint security client is the root cause.
This behavior has been confirmed against SEP 12.1.6 (12.1 RU6 MP6), build 7061 and the broader SEP 12.x family. The blocking component is the Network Threat Protection / Network Protect subsystem, which intercepts the PROFINET Discovery and Configuration Protocol (PN-DCP) broadcast frames used by every Siemens tool to enumerate accessible nodes.
The engineering consequence is significant: commissioning engineers cannot perform "Online > Accessible Nodes", Starter cannot enumerate SINAMICS drives, and WinCC cannot resolve HMI targets. Because corporate policy forbids fully disabling the endpoint firewall, the correct remediation is to add targeted application exceptions, port exceptions, and MAC/protocol exceptions inside SEP, then verify the discovery path.
Root Cause Analysis
Siemens engineering tools use a multi-layer discovery stack that is fundamentally incompatible with strict host-based firewalls configured in their default state.
How Siemens Discovery Works
When the user clicks Online > Accessible Nodes in TIA Portal, the engineering station transmits an Ethernet frame to the reserved PROFINET multicast MAC address 01:0E:CF:00:00:00. This frame is a Layer-2 DCP IdentifyRequest multicast carried inside a UDP datagram on destination port 34964. Each PROFINET device on the broadcast domain is required by the PROFINET specification to reply with a DCP IdentifyResponse that contains the device's IP, name, MAC, vendor ID, and device ID. TIA Portal correlates these replies and populates the device tree.
What SEP Blocks
SEP's Network Threat Protection engine inspects outbound and inbound frames against three policy classes:
- Firewall rules — port/protocol/address matchers that operate at Layer-3/4.
- Application Control / System Lockdown — per-executable and per-DLL allow/deny lists, configurable per Broadcom's Device Control and Application Control documentation.
-
Network Protect — Layer-2 broadcast and multicast filter that drops frames sent to non-internet multicast groups, including the PROFINET DCP multicast
01:0E:CF:00:00:00.
Disabling only the firewall rule is not enough: Network Protect is a separate driver-level component (typically the SymIron / Teefer miniport) that sits below the Windows Filtering Platform and blocks the frame before any WFP-aware tool sees it. This is why "disable Windows Firewall" alone does not reproduce the problem, and why "disable SEP firewall" alone does fix it — the SEP firewall driver is the same component hosting Network Protect.
Affected Siemens Software and Components
| Tool | Executable | Discovery Method | Symptom |
|---|---|---|---|
| TIA Portal V13–V19 |
S7tgtopx.exe, Siemens.Automation.Portal.exe
|
DCP broadcast, S7 discovery | "Accessible nodes" empty; online to CPU fails |
| SIMATIC Manager (Step 7 V5.x) |
SIMATIC Manager.exe, S7OTBXBX.DLL
|
S7 broadcast, MAC 01:0E:CF | PG/PC interface shows no nodes |
| Primary Setup Tool (PST) | PrimarySetupTool.exe |
PROFINET DCP, SNMP | No devices found on subnet |
| Starter / Startdrive |
STARTER.exe, Startdrive.exe
|
DCP, broadcast, accessible nodes | Drive list empty |
| WinCC / HMI Panels |
CCEServer.exe, HMIRtm.exe
|
DCP, S7 routing, ISO-on-TCP | Go-online fails |
| PRONETA | PRONETA.exe |
DCP, LLDP, SNMP | Network analysis empty |
| SIMATIC Automation Tool | SIMATICAutomationTool.exe |
DCP, ARP, ICMP | Scan returns nothing |
Protocol and Port Reference
Add the following ports and protocols to the SEP firewall exception set. These are the values Siemens engineering stations require; they are not policy recommendations but the technical minimum for PROFINET conformance class A/B/C and S7 communication.
| Port | Protocol | Direction | Purpose | Used By |
|---|---|---|---|---|
| 34964 / UDP | PROFINET DCP | In/Out | Identify / Identify-Reply multicast | TIA, SIMATIC Manager, PST, Starter, PRONETA |
| 34962 / UDP | PROFINET RT (legacy) | In/Out | Real-time class 1 | PROFINET IO |
| 34963 / UDP | PROFINET RTC | In/Out | Real-time class 2/3 unicast | PROFINET IO with IRT |
| 34965 / UDP | PROFINET MCP | In/Out | Multicast communication | PROFINET IO multicast |
| 102 / TCP | ISO-on-TCP (RFC 1006) | In/Out | S7 communication, PG functions | All S7 tools, WinCC |
| 161 / UDP | SNMP | Out | Topology discovery (SCALANCE) | PRONETA, Web-based management |
| 162 / UDP | SNMP trap | In | Traps from switches | PST, PRONETA |
| 50000 / TCP | PN IO controller data | In/Out | iPCF, fast IO | TIA Portal download |
| 80 / TCP, 443 / TCP | HTTP/S | Out | Web server on CPU/CP | Web diagnostics, TIA cloud |
| Proto 0x8892 (Ethertype 34918) | PROFINET RT frame | In/Out | Real-time frames | PROFINET IO runtime |
| Proto 0x88CC (LLDP) | LLDP | In/Out | Topology | PRONETA, SCALANCE |
01:0E:CF:00:00:00. SEP Network Protect must be told to allow this MAC explicitly, or the multicast frame is dropped at the NDIS layer before any firewall rule can match it.Step-by-Step: Configure SEP Exceptions for Siemens Discovery
The procedure below is written for SEP 12.1 RU6 MP6 (build 7061) and later SEP 14.x / 16.x clients managed by SEPM (Symantec Endpoint Protection Manager). Local policy editing on the engineering station is identical when SEPM is not used.
Prerequisites
- Local administrator rights on the engineering station, or a delegated SEPM policy with Password Protect Symantec Endpoint Protection disabled for the duration of the change.
- Read access to the SEP client logs at
C:\ProgramData\Symantec\Symantec Endpoint Protection\<version>\Data\Logs— specificallyFWLog,IDSLog, andNetProtect.log. - Wireshark or Microsoft Network Monitor installed for verification (optional but recommended).
- A known-good target PLC on the same subnet (e.g. S7-1500 with PROFINET interface enabled).
Step 1 — Identify the Blocking Component
- Open the SEP client UI and select Change Settings > Network Protect.
- Confirm that Network Protect is enabled and Network Threat Protection is enabled.
- Run a discovery in TIA Portal. If the device list is empty, proceed.
- From an elevated command prompt, run
netstat -anob | findstr 34964— this confirms whether any Siemens process has the DCP socket open. If nothing is listed, the SEP driver has already dropped the request before socket bind. - Temporarily disable only Network Threat Protection (do not disable the firewall engine) and repeat the discovery. If the list populates, Network Protect is the culprit and the configuration in Steps 2–4 below is required. If the list is still empty, proceed to Step 5 for application-level exceptions.
Step 2 — Add the PROFINET DCP Multicast MAC to Network Protect Allow-List
- In SEPM, navigate to Clients > Policies > Network Threat Protection, and edit the policy assigned to the Siemens engineering workstation group.
- Select Exceptions > Edit list > Add > MAC Address.
- Enter destination MAC
01-0E-CF-00-00-00and mark the entry as Allow. - Add the IPv4 multicast equivalent
224.0.0.1and the PROFINET-specific link-local scope address range as a separate host exception. PROFINET IO controllers do not normally use IP multicast for DCP, but a subset of devices (S7-1500 with RADIUS, SCALANCE X-200/XB-200) reply on239.255.255.255for diagnostic discovery. - Push the policy to the engineering group and wait for the SEP heartbeat cycle (default 60 s).
Step 3 — Add the Required UDP/TCP Ports to the Firewall Policy
- In SEPM, open Policies > Firewall for the same group.
- Add the following Allow rules (block-by-default is the SEP default, so each is required):
| Rule Name | Action | Protocol | Local Port | Remote Port | Direction | Addresses |
|---|---|---|---|---|---|---|
| PN DCP Discovery | Allow | UDP | Any | 34964 | In/Out | Local subnet broadcast + 224.0.0.0/4 |
| PN RT Class 1 | Allow | UDP | Any | 34962 | In/Out | Local subnet |
| PN RT Class 2/3 | Allow | UDP | Any | 34963 | In/Out | Local subnet |
| PN MCP | Allow | UDP | Any | 34965 | In/Out | Local subnet |
| S7 ISO-on-TCP | Allow | TCP | Any | 102 | In/Out | PLC subnet (192.168.0.0/16 example) |
| SNMP Query | Allow | UDP | Any | 161 | Out | PLC subnet |
| SNMP Trap | Allow | UDP | Any | 162 | In | PLC subnet |
| TIA Web Server | Allow | TCP | Any | 80, 443 | Out | PLC subnet |
- Scope each rule to the engineering station IP, or to the PLC subnet, to avoid opening these ports to the corporate network.
- Save and push the policy.
Step 4 — Add the PROFINET Ethertypes as Frame Exceptions
For IRT-class PROFINET networks, real-time frames are tagged with Ethertype 0x8892 (PROFINET RT) and 0x88CC (LLDP). These are not matched by port-based firewall rules.
- Under Network Threat Protection > Exceptions > Add > Ethernet Protocol, add:
- Ethernet Type:
0x8892, Action: Allow - Ethernet Type:
0x88CC, Action: Allow
- Ethernet Type:
- Apply the policy. IRT diagnostics in TIA Portal (Topology > Compare offline/online) will now succeed.
Step 5 — Add Application Exceptions for the Siemens Toolchain
Even with port rules, the SEP Application Control engine can block DLLs that the Siemens process loads. Per the Broadcom SEP Application Control documentation, allow the following executables and DLLs on the engineering station:
| Process | Typical Path | Action |
|---|---|---|
S7tgtopx.exe |
C:\Program Files\Siemens\Automation\Portal V<V>\bin |
Allow |
Siemens.Automation.Portal.exe |
Same root | Allow |
SIMATIC Manager.exe |
C:\Program Files\Siemens\Automation\SIMATIC Manager\S7BIN |
Allow |
S7OTBXBX.DLL |
Same root | Allow (DLL exception) |
S7wsfexe.exe |
Step 7 root | Allow |
PrimarySetupTool.exe |
C:\Program Files\Siemens\Automation\PST |
Allow |
STARTER.exe / Startdrive.exe
|
C:\Program Files\Siemens\Automation\Starter |
Allow |
PRONETA.exe |
C:\Program Files\Siemens\Automation\PRONETA |
Allow |
javaw.exe (Siemens bundled JRE) |
C:\Program Files\Siemens\Automation\jre\bin |
Allow |
CCEServer.exe |
WinCC root | Allow |
Step 6 — Verify Network Protect is the Culprit vs. the Firewall
Use the SEP client's built-in Connection Tracking (live firewall log) under View Logs > Traffic:
- Set the log filter to Action: Blocked and Protocol: UDP.
- Trigger a TIA Portal accessible-nodes scan.
- Look for
0.0.0.0:<ephemeral> -> 224.0.0.1:34964entries with a Network Threat Protection drop reason. This is the smoking gun. - If the drop reason is Firewall instead of Network Threat Protection, Step 3 rules are missing; if the reason is Network Protect, the MAC exception in Step 2 is missing.
SEP Build-Specific Notes
| SEP Version | Build | Known Behavior | Required Action |
|---|---|---|---|
| SEP 12.1 RU6 MP6 | 7061 | Network Protect drops PROFINET DCP; firewall alone does not block | MAC + port exceptions (Steps 2–4) |
| SEP 12.1.7004 | 7004 | Application Control blocks S7OTBXBX.DLL load |
Add DLL to Application allow-list |
| SEP 14.x | various | Network Protect integrated into Intrusion Prevention | Use IPS signature exclusions for DCP |
| SEP 16.x | various | Application Control renamed "Adaptive Protection" | Use Adaptive Protection exceptions |
| SEP 14.0 MP1–MP2 | various | MAC allow-list limited to 256 entries per policy | Consolidate MACs; avoid per-device lists |
S7tgtopx.exe if it opens 50+ sockets in a few seconds (a normal TIA portal scan pattern). Whitelist the executable under Exceptions > Adaptive Protection > Process Exclusions.Network Topology & Discovery Flow
Verification
- Re-open TIA Portal and click Online > Accessible Nodes. The list should populate within 5–10 seconds with every PROFINET device on the local subnet.
- In SIMATIC Manager, select PLC > Display Accessible Nodes (F5). S7-300/400/1200/1500 CPUs should appear in the result tree.
- Launch Starter and verify that SINAMICS drives on the same subnet are discovered.
- Run Wireshark with a capture filter of
udp port 34964while triggering a scan. Confirm that an IdentifyRequest is sent and at least one IdentifyResponse is returned within 3 seconds. - From an elevated prompt, run
netsh advfirewall show allprofilesand confirm Windows Firewall is unchanged. The fix must work with SEP enabled — not by disabling it. - Reboot the engineering station and re-verify. SEP services (SymIron, SMC) load at boot; if the exceptions are not in the persisted policy, they will be lost.
- Re-run a TIA Portal download to a CPU to confirm TCP/102 S7 communication is unaffected by the new rules.
Troubleshooting Matrix
| Symptom | Likely Cause | Diagnostic | Remediation |
|---|---|---|---|
| Accessible Nodes empty; ping works | Network Protect blocking DCP multicast | SEP Traffic log shows Network Threat Protection: Block on UDP 34964 | Add MAC 01:0E:CF:00:00:00 to Network Protect exceptions |
| Devices found; TIA cannot go online | TCP/102 blocked | SEP log shows Firewall: Block on TCP 102 | Add S7 ISO-on-TCP allow rule |
| Starter/PST finds S7 CPUs but not SCALANCE switches | SNMP 161/162 blocked | SEP log shows UDP 161/162 blocked | Add SNMP allow rules |
| Topology view in TIA shows IRT devices offline | Ethertype 0x8892 dropped | WireShark: no PN RT frames received | Add Ethertype 0x8892 to Network Protect frame exceptions |
| PRONETA sees nothing | LLDP blocked + SNMP blocked | WireShark: no LLDP from switches | Add Ethertype 0x88CC + UDP 161 |
| Discovery works for 30 seconds, then drops | Adaptive Protection quarantines S7tgtopx.exe | SEP Quarantine log | Whitelist in Adaptive Protection |
| Discovery works locally, fails over VPN | VPN driver takes precedence over NDIS multicast routing | WireShark on VPN interface | Configure VPN client to allow directed broadcasts or use PROFINET proxy |
| S7-1500 finds, S7-1200 does not | S7-1200 firmware < V4.0 replies on different multicast | Check device firmware version | Upgrade S7-1200 firmware to V4.5+ |
| Works with SEP disabled, fails with SEP enabled | Confirmation that SEP is the cause | Re-enable SEP and repeat scan | Apply exceptions per this article |
| Exceptions applied but still blocked | Policy not yet propagated to client | SEP UI: Status > Communication Status | Force policy update: siscsripts -p or restart smc service |
Alternative Mitigations (When IT Cannot Modify Policy)
- Use a non-SEP subnet — Configure a dedicated engineering VLAN where the SEP client is excluded by GPO. Common in plant environments where the engineering PC uses two NICs: one corporate (SEP-protected) and one plant network (SEP excluded).
- Loopback to a local S7-PLCSIM — For offline program development only, PLCSIM bypasses DCP entirely and uses a virtual adapter not subject to Network Protect.
- Direct IP entry — In TIA Portal, manually type the CPU IP into the device address field. The TCP/102 connection still requires the firewall exception, but DCP is not required for that path.
- PRONETA with offline topology — PRONETA can load a saved network scan from a USB stick taken from a non-SEP machine; not a real-time fix but useful for audits.
- Convert to S7 routing — Configure an S7-1500 as a router in TIA Portal topology and access downstream devices via the CPU's IP rather than broadcast discovery.
Long-Term Hardening
- Create a dedicated Siemens Engineering computer group in Active Directory and assign the policy exceptions above only to that group, not to the global engineering OU.
- Document the policy in a corporate exception register; auditors will ask for justification, and the PROFINET standard (PROFINET specification, IEC 61784-2) is the technical authority.
- Lock the Siemens tool installation path with Application Control System Lockdown to prevent unrelated software from impersonating Siemens tools to gain the open ports.
- Log SEP exceptions to SIEM (Splunk, Sentinel) so that any rogue executable piggybacking on the open UDP 34964 port is visible to the SOC.
- Re-evaluate the policy when migrating to a new SEP major version (e.g. SEP 16 to SEP 17); Broadcom's release notes usually call out changes to Network Protect default behavior.
Why does disabling only the SEP firewall not restore discovery in some cases?
Because the PROFINET DCP multicast frame is intercepted by the Network Protect driver (SymIron miniport) before the firewall engine sees it. You must add the destination MAC 01:0E:CF:00:00:00 to the Network Threat Protection exceptions list, not just the firewall rules. Disabling the firewall alone leaves Network Protect active, and the frame is still dropped.
What is the difference between SEP Network Protect and the SEP Firewall?
The SEP Firewall inspects Layer-3/4 traffic (IP addresses and TCP/UDP ports) and runs as a Windows Filtering Platform (WFP) callout driver. Network Protect inspects Layer-2 frames, including Ethernet multicast and broadcast, and runs as an NDIS filter driver. PROFINET DCP uses multicast MAC 01:0E:CF:00:00:00 with UDP port 34964, so both subsystems must allow it. The two policies are configured separately in SEPM and appear as different rule sets in the client UI.
Which UDP port does Siemens TIA Portal use to find devices on the network?
TIA Portal uses UDP port 34964 for PROFINET Discovery and Configuration Protocol (DCP) IdentifyRequest / IdentifyResponse exchanges. It also uses TCP port 102 (ISO-on-TCP / RFC 1006) for S7 communication once a device is selected, and UDP 161/162 for SNMP-based discovery of SCALANCE switches.
Can I configure SEP exceptions locally on the engineering PC without SEPM?
Yes. In the SEP client, open Change Settings > Network Threat Protection > Exceptions, add the MAC 01:0E:CF:00:00:00 as an allowed destination, and add the UDP/TCP port rules under Firewall > Rules. Local exceptions are stored in C:\ProgramData\Symantec\Symantec Endpoint Protection\<version>\Data\Config and override SEPM-pushed policy only if the SEPM policy is set to Client overrides allowed.
Does the same problem occur with TIA Portal V17 and V18 on SEP 14.x or 16.x?
Yes. The blocking mechanism is in the SEP driver, not the TIA version, so every TIA Portal release (V13 through V19) and every SEP release from 12.1 to 16.x is affected. The remediation is the same: allow MAC 01:0E:CF:00:00:00 in Network Protect, allow UDP 34964 in the firewall, and add the Siemens toolchain executables to Application Control. On SEP 16.x with Adaptive Protection enabled, also whitelist S7tgtopx.exe under process exclusions to prevent quarantine from socket-burst heuristics.
Is the fix the same for SIMATIC Manager (Step 7 V5.x) as for TIA Portal?
Yes. SIMATIC Manager's "Display Accessible Nodes" uses the same PROFINET DCP multicast on MAC 01:0E:CF:00:00:00 and UDP 34964. The only difference is the process name (SIMATIC Manager.exe and S7OTBXBX.DLL) that must be allowed in Application Control. The same firewall and Network Protect rules apply.