In order for a system to be useful, it needs to interact with the environment and provide some level of functionality. Historically, embedded systems were mostly islands – that is, they provided their functionality in a stand-alone manner, and weren’t connected, or had limited connectivity to other systems. With these kinds of systems, it was relatively easy to analyze their security – the number of ways of getting in and compromising the operation was extremely limited.