Fog computing is an emerging distributed computational paradigm that moves the computation towards the edge (i.e., where data are produced). Although Fog operating systems provide basic security mechanisms, security controls over the behaviour of applications running on Fog nodes are limited. For this reason, applications are prone to a variety of attacks. We show how current Fog operating systems (with a specific focus on Cisco IOx) are actually unable to prevent these attacks. We propose a runtime policy enforcement mechanism that allows for the specification and enforcement of user-defined security policies on the communication channels adopted by interacting Fog applications. We prove that the proposed technique reduces the attack surface of Fog computing w.r.t. malicious applications. We demonstrate the effectiveness of the proposed technique by carrying out an experimental evaluation against a realistic Fog-based IoT scenario for smart irrigation.