Skip to content

Commit 4c43b0d

Browse files
authored
Merge pull request #226192 from dominicbetts/iot-security-refresh
IoT Fundamentals: security updates
2 parents a578d3c + 18a1f9e commit 4c43b0d

21 files changed

+326
-712
lines changed

articles/iot-accelerators/.openpublishing.redirection.iot-accelerators.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -522,17 +522,17 @@
522522
},
523523
{
524524
"source_path_from_root": "/articles/iot-accelerators/iot-accelerators-security-deployment.md",
525-
"redirect_url": "/azure/iot-fundamentals/iot-security-deployment",
525+
"redirect_url": "/azure/iot-fundamentals/iot-security-best-practices",
526526
"redirect_document_id": false
527527
},
528528
{
529-
"source_path_from_root": "/articles/iot-accelerators/securing-iot-groud-up.md",
530-
"redirect_url": "/azure/iot-fundamentals/iot-security-ground-up",
529+
"source_path_from_root": "/articles/iot-accelerators/securing-iot-ground-up.md",
530+
"redirect_url": "/azure/iot-fundamentals/iot-security-architecture",
531531
"redirect_document_id": false
532532
},
533533
{
534534
"source_path_from_root": "/articles/iot-suite/securing-iot-ground-up.md",
535-
"redirect_url": "/azure/iot-fundamentals/iot-security-ground-up",
535+
"redirect_url": "/azure/iot-fundamentals/iot-security-architecture",
536536
"redirect_document_id": false
537537
},
538538
{

articles/iot-dps/concepts-device-oem-security-practices.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ For more information, see [provisioning](about-iot-dps.md#provisioning-process)
182182
## Resources
183183

184184
In addition to the recommended security practices in this article, Azure IoT provides resources to help with selecting secure hardware and creating secure IoT deployments:
185-
- Azure IoT [security recommendations](../iot-fundamentals/security-recommendations.md) to guide the deployment process.
185+
- Azure IoT [security best practices](../iot-fundamentals/iot-security-best-practices.md) to guide the deployment process.
186186
- The [Microsoft Defender for Cloud](https://azure.microsoft.com/services/security-center/) offers a service to help create secure IoT deployments.
187187
- For help with evaluating your hardware environment, see the whitepaper [Evaluating your IoT Security](https://download.microsoft.com/download/D/3/9/D3948E3C-D5DC-474E-B22F-81BA8ED7A446/Evaluating_Your_IOT_Security_whitepaper_EN_US.pdf).
188188
- For help with selecting secure hardware, see [The Right Secure Hardware for your IoT Deployment](https://download.microsoft.com/download/C/0/5/C05276D6-E602-4BB1-98A4-C29C88E57566/The_right_secure_hardware_for_your_IoT_deployment_EN_US.pdf).

articles/iot-fundamentals/.openpublishing.redirection.iot-fundamentals.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,20 @@
44
"source_path_from_root": "/articles/iot-fundamentals/iot-solution-apaas-paas.md",
55
"redirect_url": "/azure/iot-fundamentals",
66
"redirect_document_id": false
7+
},
8+
{
9+
"source_path_from_root": "/articles/iot-fundamentals/iot-security-ground-up.md",
10+
"redirect_url": "/azure/iot-fundamentals/iot-security-architecture",
11+
"redirect_document_id": false
12+
}, {
13+
"source_path_from_root": "/articles/iot-fundamentals/security-recommendations.md",
14+
"redirect_url": "/azure/iot-fundamentals/iot-security-best-practices",
15+
"redirect_document_id": true
16+
},
17+
{
18+
"source_path_from_root": "/articles/iot-fundamentals/iot-security-deployment.md",
19+
"redirect_url": "/azure/iot-fundamentals/iot-security-best-practices",
20+
"redirect_document_id": false
721
}
822
]
923
}

articles/iot-fundamentals/iot-security-architecture.md

Lines changed: 194 additions & 7 deletions
Large diffs are not rendered by default.
Lines changed: 96 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,104 @@
11
---
2-
title: Internet of Things (IoT) security best practices
3-
description: Best practices for securing your IoT data and infrastructure
4-
author: eross-msft
2+
title: Security best practices
3+
titleSuffix: Azure IoT
4+
description: Security best practices for building, deploying, and operating your IoT solution. Includes recommendations for devices, data, and infrastructure
5+
author: dominicbetts
56
ms.service: iot-fundamentals
67
services: iot-fundamentals
78
ms.topic: conceptual
8-
ms.date: 08/26/2022
9-
ms.author: lizross
9+
ms.date: 02/10/2023
10+
ms.author: dobett
1011
---
11-
# Security best practices for Internet of Things (IoT)
1212

13-
[!INCLUDE [iot-security-best-practices](../../includes/iot-security-best-practices.md)]
13+
# Security best practices for IoT solutions
1414

15-
## See also
15+
You can divide security in an IoT solution into the following three areas:
1616

17-
Read about IoT Hub security in [Control access to IoT Hub](../iot-hub/iot-hub-devguide-security.md) in the IoT Hub developer guide.
17+
- **Device security**: Securing the IoT device while it's deployed in the wild.
18+
19+
- **Connection security**: Ensuring all data transmitted between the IoT device and IoT Hub is confidential and tamper-proof.
20+
21+
- **Cloud security**: Providing a means to secure data while it moves through, and is stored in the cloud.
22+
23+
Implementing the recommendations in this article will help you meet the security obligations described in the shared responsibility model. To learn more about what Microsoft does to fulfill service provider responsibilities, see [Shared responsibilities for cloud computing](../security/fundamentals/shared-responsibility.md).
24+
25+
## Responsibilities
26+
27+
You can develop and execute an IoT security strategy with the active participation of the various players involved in the manufacturing, development, and deployment of IoT devices and infrastructure. The following list is a high-level description of these players.
28+
29+
- **Hardware manufacturer/integrator**: The manufacturers of IoT hardware you're deploying, the integrators assembling hardware from various manufacturers, or the suppliers providing the hardware.
30+
31+
- **Solution developer**: The solution developer may part of an in-house team or a system integrator specializing in this activity. The IoT solution developer can develop various components of the IoT solution from scratch, or integrate various off-the-shelf or open-source components.
32+
33+
- **Solution deployer**: After an IoT solution is developed, it needs to be deployed in the field. This process involves deployment of hardware, interconnection of devices, and deployment of solutions in hardware devices or the cloud.
34+
35+
- **Solution operator**: After the IoT solution is deployed, it requires long-term operations, monitoring, upgrades, and maintenance. These tasks can be done by an in-house team that monitors the correct behavior of overall IoT infrastructure.
36+
37+
## Microsoft Defender for IoT
38+
39+
Microsoft Defender for IoT can automatically monitor some of the recommendations included in this article. Microsoft Defender for IoT should be the first line of defense to protect your resources in Azure. Microsoft Defender for IoT periodically analyzes the security state of your Azure resources to identify potential security vulnerabilities. It then provides you with recommendations on how to address them.
40+
41+
- To learn more about Microsoft Defender for IoT recommendations, see [Security recommendations in Microsoft Defender for IoT](../security-center/security-center-recommendations.md).
42+
- To learn more about Microsoft Defender for IoT, see [What is Microsoft Defender for IoT?](../security-center/security-center-introduction.md).
43+
44+
## Device security
45+
46+
- **Scope hardware to minimum requirements**: Select your device hardware to include the minimum features required for its operation, and nothing more. For example, only include USB ports if they're necessary for the operation of the device in your solution. Extra features can expose the device to unwanted attack vectors.
47+
48+
- **Select tamper proof hardware**: Select device hardware with built-in mechanisms to detect physical tampering, such as the opening of the device cover or the removal of a part of the device. These tamper signals can be part of the data stream uploaded to the cloud, which can alert operators to these events.
49+
50+
- **Select secure hardware**: If possible choose device hardware that includes security features such as secure and encrypted storage and boot functionality based on a Trusted Platform Module. These features make devices more secure and help protect the overall IoT infrastructure.
51+
52+
- **Enable secure upgrades**: Firmware upgrades during the lifetime of the device are inevitable. Build devices with secure paths for upgrades and cryptographic assurance of firmware versions to secure your devices during and after upgrades.
53+
54+
- **Follow a secure software development methodology**: The development of secure software requires you to consider security from the inception of the project all the way through implementation, testing, and deployment. The [Microsoft Security Development Lifecycle](https://www.microsoft.com/securityengineering/sdl/) provides a step-by-step approach to building secure software.
55+
56+
- **Use device SDKs whenever possible**: Device SDKs implement various security features such as encryption and authentication that help you develop robust and secure device applications. To learn more, see [Understand and use Azure IoT Hub SDKs](../iot-hub/iot-hub-devguide-sdks.md).
57+
58+
- **Choose open-source software with care**: Open-source software provides an opportunity to quickly develop solutions. When you're choosing open-source software, consider the activity level of the community for each open-source component. An active community ensures that software is supported and that issues are discovered and addressed. An obscure and inactive open-source software project might not be supported and issues aren't likely be discovered.
59+
60+
- **Deploy hardware securely**: IoT deployments may require you to deploy hardware in unsecure locations, such as in public spaces or unsupervised locales. In such situations, ensure that hardware deployment is as tamper-proof as possible. For example, if the hardware has USB ports ensure that they're covered securely.
61+
62+
- **Keep authentication keys safe**: During deployment, each device requires device IDs and associated authentication keys generated by the cloud service. Keep these keys physically safe even after the deployment. Any compromised key can be used by a malicious device to masquerade as an existing device.
63+
64+
- **Keep the system up-to-date**: Ensure that device operating systems and all device drivers are upgraded to the latest versions. Keeping operating systems up-to-date helps ensure that they're protected against malicious attacks.
65+
66+
- **Protect against malicious activity**: If the operating system permits, install the latest antivirus and antimalware capabilities on each device operating system.
67+
68+
- **Audit frequently**: Auditing IoT infrastructure for security-related issues is key when responding to security incidents. Most operating systems provide built-in event logging that you should review frequently to make sure no security breach has occurred. A device can send audit information as a separate telemetry stream to the cloud service where it can be analyzed.
69+
70+
- **Follow device manufacturer security and deployment best practices**: If the device manufacturer provides security and deployment guidance, follow that guidance in addition to the generic guidance listed in this article.
71+
72+
- **Use a field gateway to provide security services for legacy or constrained devices**: Legacy and constrained devices might lack the capability to encrypt data, connect with the Internet, or provide advanced auditing. In these cases, a modern and secure field gateway can aggregate data from legacy devices and provide the security required for connecting these devices over the Internet. Field gateways can provide secure authentication, negotiation of encrypted sessions, receipt of commands from the cloud, and many other security features.
73+
74+
## Connection security
75+
76+
- **Use X.509 certificates to authenticate your devices to IoT Hub**: IoT Hub supports both X509 certificate-based authentication and security tokens as methods for a device to authenticate with your IoT hub. If possible, use X509-based authentication in production environments as it provides greater security. To learn more, see [Authenticating a device to IoT Hub](../iot-hub/iot-hub-dev-guide-sas.md#authenticating-a-device-to-iot-hub).
77+
78+
- **Use Transport Layer Security (TLS) 1.2 to secure connections from devices**: IoT Hub uses TLS to secure connections from IoT devices and services. Three versions of the TLS protocol are currently supported: 1.0, 1.1, and 1.2. TLS 1.0 and 1.1 are considered legacy. To learn more, see [Transport Layer Security (TLS) support in IoT Hub](../iot-hub/iot-hub-tls-support.md).
79+
80+
- **Ensure you have a way to update the TLS root certificate on your devices**: TLS root certificates are long-lived, but they still may expire or be revoked. If there's no way of updating the certificate on the device, the device may not be able to connect to IoT Hub or any other cloud service at a later date.
81+
82+
- **Consider using Azure Private Link**: Azure Private Link lets you connect your devices to a private endpoint on your VNet, enabling you to block access to your IoT hub's public device-facing endpoints. To learn more, see [Ingress connectivity to IoT Hub using Azure Private Link](../iot-hub/virtual-network-support.md#ingress-connectivity-to-iot-hub-using-azure-private-link).
83+
84+
## Cloud security
85+
86+
- **Follow a secure software development methodology**: The development of secure software requires you to consider security from the inception of the project all the way through implementation, testing, and deployment. The [Microsoft Security Development Lifecycle](https://www.microsoft.com/securityengineering/sdl/) provides a step-by-step approach to building secure software.
87+
88+
- **Choose open-source software with care**: Open-source software provides an opportunity to quickly develop solutions. When you're choosing open-source software, consider the activity level of the community for each open-source component. An active community ensures that software is supported and that issues are discovered and addressed. An obscure and inactive open-source software project might not be supported and issues aren't likely be discovered.
89+
90+
- **Integrate with care**: Many software security flaws exist at the boundary of libraries and APIs. Functionality that may not be required for the current deployment might still be available by through an API layer. To ensure overall security, make sure to check all interfaces of components being integrated for security flaws.
91+
92+
- **Protect cloud credentials**: An attacker can use the cloud authentication credentials you use to configure and operate your IoT deployment to gain access to and compromise your IoT system. Protect the credentials by changing the password frequently, and don't use these credentials on public machines.
93+
94+
- **Define access controls for your IoT hub**: Understand and define the type of access that each component in your IoT Hub solution needs based on the required functionality. There are two ways you can grant permissions for the service APIs to connect to your IoT hub: [Azure Active Directory](../iot-hub/iot-hub-dev-guide-azure-ad-rbac.md) or [Shared Access signatures](../iot-hub/iot-hub-dev-guide-sas.md).
95+
96+
- **Define access controls for backend services**: Other Azure services can consume the data your IoT Hub ingests from your devices by using the IoT hub's Event Hubs-compatible endpoint. You can also use IoT Hub message routing to deliver the data from your devices to other Azure services. Understand and configure appropriate access permissions for IoT Hub to connect to these services. To learn more, see [Read device-to-cloud messages from the built-in endpoint](../iot-hub/iot-hub-devguide-messages-read-builtin.md) and [Use IoT Hub message routing to send device-to-cloud messages to different endpoints](../iot-hub/iot-hub-devguide-messages-d2c.md).
97+
98+
- **Monitor your IoT solution from the cloud**: Monitor the overall health of your IoT Hub solution using the [metrics in Azure Monitor](../iot-hub/monitor-iot-hub.md).
99+
100+
- **Set up diagnostics**: Monitor your operations by logging events in your solution, and then sending the diagnostic logs to Azure Monitor. To learn more, see [Monitor and diagnose problems in your IoT hub](../iot-hub/monitor-iot-hub.md).
101+
102+
## Next steps
103+
104+
Read about IoT Hub security in [Azure security baseline for Azure IoT Hub](/security/benchmark/azure/baselines/iot-hub-security-baseline?toc=/azure/iot-hub/TOC.json) and [Security in your IoT workload](/azure/architecture/framework/iot/iot-security).

articles/iot-fundamentals/iot-security-deployment.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

articles/iot-fundamentals/iot-security-ground-up.md

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)