Conector Device Defender - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Conector Device Defender

O conector Device Defender notifica os administradores sobre alterações no estado de um dispositivo de núcleo do Greengrass. Isso pode ajudar a identificar comportamento incomum e, assim, indicar um dispositivo comprometido.

Esse conector lê métricas do sistema do diretório /proc no dispositivo de núcleo e publica as métricas no AWS IoT Device Defender. Para obter detalhes de relatórios de métricas, consulte Especificação da documentação de métricas do dispositivo no Guia do desenvolvedor do AWS IoT.

Esse conector tem as seguintes versões.

Versão

ARN

3

arn:aws:greengrass:region::/connectors/DeviceDefender/versions/3

2

arn:aws:greengrass:region::/connectors/DeviceDefender/versions/2

1

arn:aws:greengrass:region::/connectors/DeviceDefender/versions/1

Para obter informações sobre alterações de versão, consulte o Changelog.

Requisitos

Esse conector tem os seguintes requisitos:

Version 3
  • Software de núcleo do AWS IoT Greengrass v1.9.3 ou versão posterior.

  • Python, versão 3.7 ou 3.8, instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.

    nota

    Para usar o Python 3.8, execute o comando a seguir para criar um symblink da pasta de instalação padrão do Python 3.7 para os binários instalados do Python 3.8.

    sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7

    Isso configura seu dispositivo para atender ao requisito Python para AWS IoT Greengrass.

  • AWS IoT Device Defender configurado para usar o atributo Detect e controlar violações. Para obter mais informações, consulte Detectar no Guia do desenvolvedor do AWS IoT.

  • Um recurso de volume local no grupo do Greengrass que aponta para o diretório /proc. O recurso deverá usar as seguintes propriedades:

    • Caminho de origem: /proc

    • Caminho de destino: /host_proc (ou um valor que corresponda ao padrão válido)

    • AutoAddGroupOwner: true

  • A biblioteca psutil instalada no núcleo do Greengrass. A versão 5.7.0 é a versão mais recente verificada para trabalhar com o conector.

  • A biblioteca cbor instalada no núcleo do Greengrass. A versão 1.0.0 é a versão mais recente verificada para trabalhar com o conector.

Versions 1 - 2
  • Software AWS IoT Greengrass Core v1.7 ou posterior.

  • Python versão 2.7 instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.

  • AWS IoT Device Defender configurado para usar o atributo Detect e controlar violações. Para obter mais informações, consulte Detectar no Guia do desenvolvedor do AWS IoT.

  • Um recurso de volume local no grupo do Greengrass que aponta para o diretório /proc. O recurso deverá usar as seguintes propriedades:

    • Caminho de origem: /proc

    • Caminho de destino: /host_proc (ou um valor que corresponda ao padrão válido)

    • AutoAddGroupOwner: true

  • A biblioteca psutil instalada no núcleo do Greengrass.

  • A biblioteca cbor instalada no núcleo do Greengrass.

Parâmetros do conector

Esse conector oferece os seguintes parâmetros:

SampleIntervalSeconds

O número de segundos entre cada ciclo de coleta de métricas e geração de relatórios. O valor mínimo é 300 segundos (5 minutos).

Nome de exibição no console do AWS IoT: Intervalo de relatórios de métricas

Obrigatório: true

Digite: string

Padrão válido: ^[0-9]*(?:3[0-9][0-9]|[4-9][0-9]{2}|[1-9][0-9]{3,})$

ProcDestinationPath-ResourceId

O ID do recurso de volume /proc.

nota

Esse conector recebe acesso somente leitura ao recurso.

Nome de exibição no console do AWS IoT: Recurso para o diretório /proc

Obrigatório: true

Digite: string

Padrão válido: [a-zA-Z0-9_-]+

ProcDestinationPath

O caminho de destino do recurso de volume /proc.

Nome de exibição no console do AWS IoT: Caminho de destino do recurso /proc

Obrigatório: true

Digite: string

Padrão válido: \/[a-zA-Z0-9_-]+

Exemplo de criação de conector (AWS CLI)

O seguinte comando da CLI cria um ConnectorDefinition com uma versão inicial que contém o conector Device Defender.

aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyDeviceDefenderConnector", "ConnectorArn": "arn:aws:greengrass:region::/connectors/DeviceDefender/versions/3", "Parameters": { "SampleIntervalSeconds": "600", "ProcDestinationPath": "/host_proc", "ProcDestinationPath-ResourceId": "my-proc-resource" } } ] }'
nota

A função do Lambda nesse conector tem um ciclo de vida longo.

No console do AWS IoT Greengrass, você pode adicionar um conector na página Conectores do grupo. Para obter mais informações, consulte Conceitos básicos de conectores do Greengrass (console).

Dados de entrada

Esse conector não aceita mensagens MQTT como dados de entrada.

Dados de saída

Esse conector publica métricas de segurança no AWS IoT Device Defender como dados de saída.

Filtro de tópico na assinatura

$aws/things/+/defender/metrics/json

nota

Esta é a sintaxe de tópico que o AWS IoT Device Defender espera. O conector substitui o curinga + pelo nome do dispositivo (por exemplo, $aws/things/thing-name/defender/metrics/json).

Exemplo de saída

Para obter detalhes de relatórios de métricas, consulte Especificação da documentação de métricas do dispositivo no Guia do desenvolvedor do AWS IoT.

{ "header": { "report_id": 1529963534, "version": "1.0" }, "metrics": { "listening_tcp_ports": { "ports": [ { "interface": "eth0", "port": 24800 }, { "interface": "eth0", "port": 22 }, { "interface": "eth0", "port": 53 } ], "total": 3 }, "listening_udp_ports": { "ports": [ { "interface": "eth0", "port": 5353 }, { "interface": "eth0", "port": 67 } ], "total": 2 }, "network_stats": { "bytes_in": 1157864729406, "bytes_out": 1170821865, "packets_in": 693092175031, "packets_out": 738917180 }, "tcp_connections": { "established_connections":{ "connections": [ { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" }, { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" } ], "total": 2 } } } }

Licenças

Esse conector é liberado de acordo com o Contrato de licença de software do Greengrass Core.

Changelog

A tabela a seguir descreve as alterações em cada versão do conector.

Versão

Alterações

3

Atualização do runtime do Lambda para Python 3.7, o que altera o requisito de runtime.

2

Corrija para reduzir o registro excessivo.

1

Versão inicial.

Um grupo do Greengrass só pode conter uma versão do conector por vez. Para obter informações sobre como fazer upgrade de uma versão do conector, consulte Atualizar a versões do conector.

Consulte também