Correção de exposições para funções do Lambda - AWSSecurity Hub

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á.

Correção de exposições para funções do Lambda

AWSO Security Hub pode gerar descobertas de exposição para AWS Lambda funções (Lambda).

No console do Security Hub, a função do Lambda envolvida em uma descoberta de exposição e suas informações de identificação estão listadas na seção Recursos dos detalhes da descoberta. Programaticamente, você pode recuperar detalhes do recurso com a GetFindingsV2operação da API CSPM do Security Hub.

Depois de identificar o recurso envolvido em uma descoberta de exposição, é possível excluir o recurso se não precisar dele. A exclusão de um recurso não essencial pode reduzir seu perfil de exposição e AWS seus custos. Se o recurso for essencial, siga estas etapas de correção recomendadas para ajudar a mitigar o risco. Os tópicos de correção são divididos com base no tipo de característica.

Uma única descoberta de exposição contém problemas identificados em vários tópicos de correção. Por outro lado, é possível abordar uma descoberta de exposição e reduzir seu nível de gravidade abordando apenas um tópico de correção. Sua abordagem para a correção de riscos depende de seus requisitos organizacionais e workloads.

nota

A orientação de remediação fornecida neste tópico pode exigir consultas adicionais em outros AWS recursos.

Características de configuração incorreta para funções do Lambda

Aqui estão as características de configuração incorreta para funções do Lambda e as etapas de correção sugeridas.

A função do Lambda está executando um runtime sem suporte

O Lambda permite que os desenvolvedores executem código sem provisionar ou gerenciar servidores por meio de runtimes que executam seu código em um ambiente gerenciado. O Lambda aplica automaticamente patches e atualizações de segurança aos runtimes gerenciados e às imagens base de contêiner correspondentes. Quando uma versão de runtime não tem mais suporte, ela não recebe mais atualizações de segurança, correções de erros ou suporte técnico. Funções executadas em runtimes obsoletos podem ter vulnerabilidades de segurança e, eventualmente, parar de funcionar devido a problemas como a expiração de certificados. Além disso, runtimes sem suporte podem ser vulneráveis a falhas de segurança recém-descobertas sem os patches disponíveis. Seguindo as práticas recomendadas de segurança, sugerimos o uso de runtimes corrigidos com patches e com suporte para funções do Lambda.

Atualização do runtime da função

Na guia Recursos da exposição, abra o recurso com o hiperlink. Isso abrirá a janela da função do Lambda. Para atualizar sua função para um runtime com suporte, defina a configuração de gerenciamento do runtime. É possível optar por atualizar automaticamente sua função para a versão de runtime mais recente, mas antes de selecionar essa opção, avalie se as atualizações automáticas podem afetar suas aplicações em execução. Para obter mais informações, consulte Noções básicas sobre como o Lambda gerencia as atualizações de versão de runtimes.

A função do Lambda é implantada fora de uma Amazon VPC

Por padrão, as funções do Lambda são implantadas com acesso à Internet pública. Essa configuração padrão dá às funções do Lambda a capacidade de alcançar pontos finais AWS de serviço e externos APIs, mas também as expõe a possíveis riscos de segurança. Funções com acesso à Internet podem ser usadas para exfiltrar dados, comunicar-se com servidores não autorizados ou se tornar pontos de entrada para agentes externos, se comprometidas. A Amazon VPC fornece isolamento de rede ao restringir suas funções do Lambda para se comunicarem somente com recursos dentro de sua rede privada definida. Seguindo os princípios de segurança padrão, sugerimos a implantação de funções do Lambda em uma VPC para melhorar a segurança por meio do isolamento da rede.

Anexação da função à VPC

Na descoberta de exposição, abra o recurso com o hiperlink. Isso abrirá a janela da função do Lambda. Para proteger sua função do Lambda restringindo o acesso à rede, conecte-a a uma VPC que tenha os controles de rede apropriados. Antes de anexar sua função a uma VPC, planeje AWS qualquer acesso de serviço necessário, pois funções em sub-redes privadas sem gateways NAT ou endpoints de VPC não conseguirão acessar o serviço. AWS APIs Para obter informações sobre como anexar uma função do Lambda a uma Amazon VPC em sua conta, consulte Anexação de funções do Lambda a uma Amazon VPC na sua Conta da AWS. Considere usar VPC endpoints para conectividade de serviços sem acesso à Internet se sua função precisar acessar AWS serviços de dentro de uma sub-rede privada. Configure um gateway de NAT se você precisar de conectividade de saída com a Internet a partir de sub-redes privadas.

A função do Lambda é capaz de assumir um perfil do IAM

As funções Lambda usam funções do IAM para interagir com AWS os serviços. Essas funções concedem permissões para a função Lambda acessar AWS recursos durante a execução. Embora esses perfis às vezes sejam necessários para que as funções do Lambda executem suas tarefas, eles devem seguir o princípio do privilégio mínimo. Seguindo os princípios de segurança padrão, AWS recomenda que você verifique se as permissões associadas à função são apropriadas com base na funcionalidade pretendida da função.

  1. Determinação se o perfil do IAM anexado é necessária

    Determine se a função do Lambda exige que um perfil de execução do IAM seja configurado. A maioria das funções do Lambda precisa de permissões básicas para operar, como gravar registros em. CloudWatch Analise as permissões associadas ao perfil de execução da função e determine se o perfil do IAM é necessário para a função. Para obter informações sobre os perfis de execução do Lambda, consulte Definição de permissões da função do Lambda com um perfil de execução no Guia do desenvolvedor do AWS Lambda.

  2. Implemente o acesso de privilégio mínimo

    Substitua as políticas excessivamente permissivas por aquelas que concedam somente as permissões específicas necessárias para a operação da função. Para obter informações sobre as práticas recomendadas de segurança para perfis do IAM, consulte Aplicação de permissões de privilégio mínimo no Guia do usuário do AWS Identity and Access Management. Para identificar permissões desnecessárias, é possível usar o IAM Access Analyzer para entender como modificar sua política com base no histórico de acesso. Para obter mais informações, consulte Descobertas para acesso externo e não utilizado no Guia do usuário do AWS Identity and Access Management. Também é possível criar um novo perfil do IAM para evitar o impacto de outras funções do Lambda que estejam usando o perfil existente. Nesse cenário, crie um novo perfil do IAM e associe-o à instância. Para obter instruções sobre como substituir um perfil do IAM por uma função, consulte Atualizção do perfil de execução de uma função no Guia do desenvolvedor do AWS Lambda.

O perfil do IAM associado à função do Lambda tem uma política de acesso administrativa.

As políticas de acesso administrativo fornecem às funções do Lambda amplas permissões para AWS serviços e recursos. Essas políticas geralmente incluem permissões que não são necessárias para a funcionalidade. Fornecer uma identidade do IAM com uma política de acesso administrativa em uma função do Lambda, em vez do conjunto mínimo de permissões que o perfil de execução precisa, pode aumentar o escopo de um ataque se a função for comprometida. Seguindo os princípios de segurança padrão, a AWS sugere que você conceda privilégios mínimos, o que significa conceder somente as permissões necessárias para executar uma tarefa.

  1. Analisar e identificar políticas administrativas

    Na descoberta de exposição, identifique o nome do perfil. Acesse o painel do IAM e localize o perfil com o nome do perfil identificado anteriormente. Analise a política da permissão anexada ao perfil do IAM. Se a política for AWS gerenciada, procure AdministratorAccess ouIAMFullAccess. Caso contrário, no documento de política, procure declarações que contenham as declarações "Effect": "Allow", "Action": "*" e "Resource": "*" juntas.

  2. Implemente o acesso de privilégio mínimo

    Substitua as políticas administrativas por aquelas que concedam somente as permissões específicas necessárias para a operação da função. Para obter mais informações sobre as práticas recomendadas de segurança para perfis do IAM, consulte Aplicação de permissões de privilégio mínimo no Guia do usuário do AWS Identity and Access Management. Para identificar permissões desnecessárias, é possível usar o IAM Access Analyzer para entender como modificar sua política com base no histórico de acesso. Para obter mais informações, consulte Descobertas para acesso externo e não utilizado no Guia do usuário do AWS Identity and Access Management. Também é possível criar um novo perfil do IAM para evitar o impacto de outras funções do Lambda que estejam usando o perfil existente. Neste cenário, crie um novo perfil do IAM. Em seguida, associe o novo perfil à instância. Para obter informações sobre como substituir um perfil do IAM por uma função, consulte Atualizção do perfil de execução de uma função no Guia do desenvolvedor do AWS Lambda.

  3. Considerações sobre configuração segura

    Se forem necessárias permissões de acesso administrativas para a instância, considere implementar estes controles de segurança adicionais para reduzir os riscos:

    • Autenticação multifator (MFA): a MFA adiciona uma camada de segurança adicional ao exigir uma forma adicional de autenticação. Isso ajuda a impedir acesso não autorizado mesmo que as credenciais estejam comprometidas. Para obter mais informações, consulte Exigência de autenticação multifator (MFA) no Guia do usuário do AWS Identity and Access Management.

    • Condições do IAM: a configuração de elementos condicionais permite restringir quando e como as permissões administrativas podem ser usadas com base em fatores como IP de origem ou idade da MFA. Para obter mais informações, consulte Uso de condições nas políticas do IAM para restrição de acesso adicional no Guia do usuário do IAM.

    • Limites de permissão: os limites de permissão estabelecem o máximo de permissões que um perfil pode ter, fornecendo proteções para perfis com acesso administrativo. Para obter mais informações, consulte Uso de limites de permissões para delegar o gerenciamento de permissões em uma conta no Guia do usuário do AWS Identity and Access Management.

A função do IAM associada à função Lambda tem uma política com acesso administrativo a um serviço AWS

As políticas de administração de serviços permitem que as funções do Lambda executem todas as ações em um serviço específicoAWS. Essas políticas normalmente concedem mais permissões do que o necessário para a operação de uma função. Se uma função Lambda com uma política de administração de serviços for comprometida, um invasor poderá usar essas permissões para potencialmente acessar ou modificar dados ou serviços confidenciais em seu ambiente. AWS Seguindo os princípios de segurança padrão, recomendamos que você conceda privilégios mínimos, o que significa conceder somente as permissões necessárias para executar uma tarefa.

  1. Analisar e identificar políticas administrativas

    Na descoberta de exposição, identifique o nome do perfil no ARN. Acesse o painel do IAM e encontre o nome do perfil. Analise a política da permissão anexada ao perfil. Se a política for AWS gerenciada, procure AdministratorAccess ouIAMFullAccess. Caso contrário, no documento de política, procure declarações que contenham as declarações "Effect": "Allow", "Action": "*" e "Resource": "*".

  2. Implemente o acesso de privilégio mínimo

    Substitua as políticas administrativas por aquelas que concedam somente as permissões específicas necessárias para a operação da função. Para obter mais informações, consulte Aplique permissões de privilégio mínimo, no Guia do usuário do AWS Identity and Access Management. Para identificar permissões desnecessárias, é possível usar o IAM Access Analyzer para entender como modificar sua política com base no histórico de acesso. Para obter mais informações, consulte Descobertas para acesso externo e não utilizado no Guia do usuário do AWS Identity and Access Management. Também é possível criar um novo perfil do IAM para evitar o impacto de outras funções do Lambda que estejam usando o perfil existente. Nesse cenário, crie um novo perfil do IAM e associe-o à instância. Para obter instruções sobre como substituir um perfil do IAM por uma função, consulte Atualizção do perfil de execução de uma função no Guia do desenvolvedor do AWS Lambda.

  3. Considerações sobre configuração segura

    Se forem necessárias permissões administrativas em nível de serviço para a instância, considere implementar estes controles de segurança adicionais para reduzir os riscos:

    • Autenticação multifator (MFA): a MFA adiciona uma camada de segurança adicional ao exigir uma forma adicional de autenticação. Isso ajuda a impedir acesso não autorizado mesmo que as credenciais estejam comprometidas. Para obter mais informações, consulte Exigência de autenticação multifator (MFA) no Guia do usuário do AWS Identity and Access Management.

    • Condições do IAM: a configuração de elementos condicionais permite restringir quando e como as permissões administrativas podem ser usadas com base em fatores como IP de origem ou idade da MFA. Para obter mais informações, consulte Uso de condições nas políticas do IAM para restrição de acesso adicional no Guia do usuário do AWS Identity and Access Management.

    • Limites de permissões: os limites de permissões estabelecem o máximo de permissões que um perfil pode ter, fornecendo proteções para perfis com acesso administrativo. Para obter mais informações, consulte Use de limite de permissões para o gerenciamento da delegação de permissões no Guia do usuário do AWS Identity and Access Management.

Características de acessibilidade para funções do Lambda

Aqui estão as características de acessibilidade para funções do Lambda e as etapas de correção sugeridas.

A função do Lambda pode ser invocada publicamente

As políticas baseadas em recursos do Lambda determinam quem pode invocar suas funções. Uma função com uma política de recursos que inclui “*” como principal (ou nenhum principal) permite que qualquer AWS usuário autenticado a invoque. Isso cria um risco significativo, especialmente para funções que processem dados sensíveis, modifiquem recursos ou tenham permissões elevadas. Usuários não autorizados podem explorar essa configuração para realizar operações indesejadas, potencialmente expondo dados, manipulando recursos ou abusando dos recursos da função. Seguindo as práticas recomendadas de segurança, sugerimos restringir o acesso à função do Lambda somente às entidades principais autorizadas.

Modificação da política baseada em recursos da função

Na guia Recursos da exposição, abra o recurso com o hiperlink. Isso abrirá a janela da função do Lambda. Restrinja o acesso à sua função Lambda especificando somente uma AWS conta autorizada IDs ou diretores específicos do IAM (usuários, funções ou serviços) na política baseada em recursos. Só é possível modificar políticas baseadas em recursos de forma programática.

Características de vulnerabilidade para funções do Lambda

Aqui estão as características de vulnerabilidade para as funções do Lambda e as etapas de correção sugeridas.

A função do Lambda tem vulnerabilidades de software que podem ser exploradas pela rede

Os pacotes de software usados no código da função Lambda podem conter vulnerabilidades e exposições comuns (CVEs) que têm uma grande chance de serem exploradas. Os críticos CVEs representam riscos de segurança significativos para seu AWS ambiente. Os invasores podem explorar essas vulnerabilidades sem correção e comprometer a confidencialidade, a integridade ou a disponibilidade dos dados, ou para acessar outros sistemas. Vulnerabilidades críticas com alta probabilidade de exploração representam ameaças imediatas à segurança, pois o código de exploração pode já estar disponível publicamente e ser usado ativamente por invasores ou por ferramentas de verificação automatizadas. Seguindo as práticas recomendadas de segurança, sugerimos corrigir essas vulnerabilidades com patches para proteger sua função contra ataques.

Atualização das funções afetadas

Analise a seção Referências na guia Vulnerabilidade da característica. A documentação do fornecedor pode incluir orientações específicas de correção. Atualize as bibliotecas vulneráveis para suas versões seguras mais recentes seguindo os procedimentos recomendados pelos fornecedores. Normalmente, o fluxo de trabalho de correção depende de você ter implantado o pacote Lambda fazendo o upload a partir de um arquivo zip ou criando uma função do Lambda com uma imagem de contêiner. Depois de atualizar as bibliotecas, atualize o código da função do Lambda para usar a versão fixa. Depois disso, implante a versão atualizada.

A função Lambda tem vulnerabilidades de software

As funções Lambda geralmente usam bibliotecas e dependências de terceiros que podem conter vulnerabilidades de segurança com menor gravidade ou capacidade de exploração em comparação com as críticas. CVEs Embora essas vulnerabilidades não críticas possam não ser imediatamente exploráveis, elas ainda representam pontos fracos de segurança que podem ser encadeados a outras vulnerabilidades para comprometer sua função. Ao longo do tempo, também podem surgir novas técnicas de exploração que aumentem o risco dessas vulnerabilidades. Seguindo os princípios de segurança padrão, sugerimos corrigir essas vulnerabilidades para manter um ambiente seguro.

Analise a seção Referências na guia Vulnerabilidade da característica. A documentação do fornecedor pode incluir orientações específicas de correção. Atualize as bibliotecas vulneráveis para suas versões seguras mais recentes seguindo os procedimentos recomendados pelos fornecedores. Normalmente, o fluxo de trabalho de correção depende de você ter implantado o pacote Lambda fazendo o upload a partir de um arquivo zip ou criando uma função do Lambda com uma imagem de contêiner. Depois de atualizar as bibliotecas, atualize o código da função do Lambda para usar a versão fixa. Depois disso, implante a versão atualizada.

A função Lambda tem pacotes de software maliciosos

Pacotes maliciosos são componentes de software que contêm códigos nocivos projetados para comprometer a confidencialidade, a integridade e a disponibilidade de seus sistemas e dados. Pacotes maliciosos representam uma ameaça ativa e crítica à sua função Lambda, pois os invasores podem executar códigos maliciosos automaticamente sem explorar uma vulnerabilidade. Seguindo as melhores práticas de segurança, AWS recomenda a remoção de pacotes maliciosos para proteger sua função Lambda de possíveis ataques.

Remover pacotes maliciosos

Examine os detalhes do pacote malicioso na seção Referências da guia Vulnerabilidade da característica para entender a ameaça. Remova os pacotes maliciosos identificados do seu código de função e dependências. Para funções que usam camadas, verifique se os pacotes maliciosos estão instalados em alguma camada e remova-os. Atualize seu pacote de implantação ou imagem de contêiner para excluir os pacotes maliciosos e, em seguida, implante a versão atualizada. Para obter instruções, consulte Implantação de funções do Lambda como arquivamentos de arquivos.zip para arquivos.zip ou Criar uma função Lambda usando uma imagem de contêiner para imagens de contêiner.