Como proteger um Azure Sphere

Concluído

Nesta unidade, você aprenderá sobre a segurança do Azure Sphere.

Os aplicativos no Azure Sphere ficam protegidos por padrão. Você precisa conceder funcionalidades ao aplicativo. A concessão de funcionalidades é fundamental para a segurança do Azure Sphere e também é conhecida como o princípio de privilégios mínimos. Você deve conceder apenas as funcionalidades de que o aplicativo do Azure Sphere precisa para ser executado corretamente, nenhuma a mais.

Os recursos do aplicativo incluem qual hardware pode ser acessado, quais pontos de extremidade de rede podem ser chamados e quais comunicações entre núcleos são permitidas.

Pontos de extremidade de rede do IoT Central

Declare todos os pontos de extremidade de rede que o aplicativo usará. Como recurso de segurança, se você tentar acessar qualquer ponto de extremidade que não tenha sido declarado no manifesto do aplicativo, o aplicativo falhará ao tentar se conectar. Essa segurança é implementada como um firewall de rede que não pode ser alterado até que o dispositivo seja reiniciado.

Ao se conectar ao IoT Central, você deve declarar o ponto de extremidade de serviço de provisionamento de dispositivo global, bem como os pontos de extremidades do aplicativo IoT Central. Caso contrário, o aplicativo Azure Sphere não poderá se conectar ao IoT Central.

Recursos do ponto de extremidade de rede

Os pontos de extremidade de rede são declarados no arquivo app_manifest.json do aplicativo na seção AllowedConnections.

{
    ...
    "AllowedConnections": [
      "global.azure-devices-provisioning.net",
      "your-iot-central-network-endpoints"
    ],
    ...
}

Acesso ao hardware

Lembre-se de que os aplicativos do Azure Sphere são protegidos por padrão e que você precisa declarar o acesso ao periféricos de hardware de que seu aplicativo precisar. Se você não declarar o hardware de que o aplicativo precisa, o aplicativo falhará ao tentar acessar o hardware. O acesso de segurança ao hardware é implementado nele como um firewall de silício. Como uma camada extra de segurança, o firewall de silício é "adesivo", e as configurações do firewall de silício permanecem em vigor até que o dispositivo seja reiniciado.

Recursos de hardware

O hardware é declarado no arquivo app_manifest.json do aplicativo na seção Capabilities.

{
  ...
  "Capabilities": {
    "Gpio": [
      "$BUTTON_A",
      "$NETWORK_CONNECTED_LED",
      "$ALERT_LED"
    ],
    "I2cMaster": [
      "$I2cMaster2"
    ],
  ...
  },
  ...
}

Definições de hardware

O hardware do Azure Sphere está disponível de vários fornecedores, e cada fornecedor pode expor recursos do chip subjacente de maneiras diferentes. Os aplicativos do Azure Sphere gerenciam dependências de hardware usando arquivos de definição de hardware. Para obter mais informações, confira o artigo Como gerenciar dependências de hardware de destino.

Os laboratórios deste módulo de aprendizado têm um conjunto de arquivos de definição de hardware para as placas de desenvolvedor da AVNET e do SEEED Studio do Azure Sphere. O arquivo de definição de hardware azure_sphere_learning_path está incluído em main.c para cada laboratório.

#include "hw/azure_sphere_learning_path.h"

Você aprenderá a declarar os pontos de extremidade de rede no exercício a seguir.