Page115
Embedded Systems and The Internet of Things (IoT)
Embedded systems are computers that perform a limited set of functions, unlike general-purpose systems that perform a wide variety of functions, such as a desktop computer running Windows 11. Examples of embedded systems include HVAC controllers, medical devices such as heart monitors or IV drip pumps, ATMs, and “smart” appliances. The “embedded” portion means that it is not obvious that they are computers: a “smart” dishwasher appears largely the same as an older mechanical dishwasher that does not contain a computer.
The Internet of Things (IoT) refers to small Internet connected devices such as baby monitors, thermostats, cash registers, appliances, light bulbs, smart meters, fitness monitors, and cars. Many of these devices are often directly accessible via the internet. These are embedded systems that are also networked. Their risk is larger because they can be compromised via the network: non-networked embedded devices require physical access to compromise.
You may think of your “smart” TV as a television (which it is), but it is probably also running a server operating system such as Linux. These devices can pose significant security risks: default credentials are common, enterprise management tools are usually lacking, and straightforward issues such as patching can be difficult (if not impossible). Vendors often release base operating system patches quite slowly, and commonly end support for devices that are still in widespread use.
Remember Hypponen’s Law when considering “smart” devices, a term coined by Mikko Hypponen. His Twitter post is shown in Fig. 4.19.
. Hypponen’s Law
Distributed Systems and Edge Computing Systems
Distributed systems combine computers from multiple locations and treat them as one logical system. For example: millions of people surf to https://google.com and appear to be accessing the same system, while there are thousands of geographically distributed servers involved. STI Partners defines distributed computing: “Distributed computing refers to the ability to move workloads across different locations across the distributed compute spectrum. As seen below, this includes locations in the traditional cloud (private or public), the edge and potentially end-devices” [24].
Distributed computing uses a range of systems, from centralized cloud-based systems to local edge systems (located at or near the customer’s site).
Edge computing is a component of distributed computing that seeks to push data to the edge of the network (and closer to the customer). This allows faster download speeds, low network latency, and can leverage local CPUs to perform complex calculations (as opposed to uploading data to a central location to process it). Content Distribution Networks (CDNs), discussed in Chapter 5, Domain 4: Communication and Network Security, were an early form of edge computing.