Our reliance on the correct functioning of embedded systems is growing rapidly. Such systems are used in a wide range of applications such as airbag control systems, mobile phones, and high-end television sets. As Internet of Things (IoT) is now present in all technology sections, allowing different embedded systems to connect and exchange data, the chances of security breach have expanded to a large extent. Thus, the reliability of the embedded (distributed) software in IoT is a key issue in the system development. This PhD research is concerned with identifying software vulnerabilities, which compromise not only network security but also information security in IoT devices. In particular, it aims to find software vulnerabilities using fuzzing, symbolic execution, and abstract interpretation techniques, in order to prevent unauthorised access to the network by shielding the network from malicious attacks and thus protecting the data flowing through the network. In particular, the main objectives of this PhD research are: (1) analyse and develop a deeper understanding of network security as a whole to capture main properties of interest to a secure network in IoT; (2) understand all possible cyber threats/attacks that IoT devices can face; (3) propose a method to identify software vulnerabilities using fuzzing, symbolic execution, and abstract interpretation techniques, in order to make them less susceptible to the cyber threats/attacks.