Correção de exposições para funções Lambda - AWS Security 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 Lambda

nota

O Security Hub está em versão prévia e está sujeito a alterações.

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

No console do Security Hub, a função 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 do Security Hub.

Depois de identificar o recurso envolvido em uma descoberta de exposição, você pode 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 remediação recomendadas para ajudar a mitigar o risco. Os tópicos de remediaçã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 remediação. Por outro lado, você pode abordar uma descoberta de exposição e reduzir seu nível de gravidade abordando apenas um tópico de remediação. Sua abordagem para remediação de riscos depende de seus requisitos organizacionais e cargas de trabalho.

nota

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

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 Lambda

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

A função Lambda está executando um tempo de execução não suportado

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

Tempo de execução da função de atualização

Na guia Recursos da exposição, abra o recurso com o hiperlink. Isso abrirá a janela da função Lambda. Para atualizar sua função para um tempo de execução compatível, configure a configuração de gerenciamento de tempo de execução. Você pode optar por atualizar automaticamente sua função para a versão de tempo de execução mais recente, mas antes de selecionar essa opção, avalie se as atualizações automáticas podem afetar seus aplicativos em execução. Para obter mais informações, consulte Entendendo como o Lambda gerencia as atualizações da versão em tempo de execução.

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

Por padrão, as funções 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 Lambda para se comunicarem somente com recursos dentro de sua rede privada definida. Seguindo os princípios de segurança padrão, recomendamos a implantação de funções Lambda em uma VPC para melhorar a segurança por meio do isolamento da rede.

Anexar função ao VPC

Na descoberta de exposição, abra o recurso com o hiperlink. Isso abrirá a janela da função Lambda. Para proteger sua função 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 Lambda a uma Amazon VPC em sua conta, consulte Anexar funções do Lambda a uma Amazon VPC no seu. 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 NAT se você precisar de conectividade de saída com a Internet a partir de sub-redes privadas.

A função Lambda é capaz de assumir uma função 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 essas funções às vezes sejam necessárias para que as funções do Lambda executem suas tarefas, elas 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. Determine se a função IAM anexada é necessária

    Determine se a função Lambda exige que uma função de execução do IAM seja configurada. 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 à função de execução da função e determine se a função do IAM é necessária para a função. Para obter informações sobre as funções de execução do Lambda, consulte Definição de permissões da função Lambda com uma função de execução no Guia do desenvolvedor.AWS Lambda

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

    Substitua políticas excessivamente permissivas por aquelas que concedem somente as permissões específicas necessárias para que a função funcione. Para obter informações sobre as melhores práticas de segurança para funções do IAM, consulte Aplicar permissões de privilégios mínimos no Guia do usuário.AWS Identity and Access Management Para identificar permissões desnecessárias, você pode 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 Conclusões sobre acesso externo e não utilizado no Guia do AWS Identity and Access Management usuário. Como alternativa, você pode criar uma nova função do IAM para evitar o impacto de outras funções do Lambda que estão usando a função existente. Nesse cenário, crie uma nova função do IAM e associe a nova função do IAM à instância. Para obter instruções sobre como substituir uma função do IAM por uma função, consulte Atualizar a função de execução de uma função no Guia do AWS Lambda desenvolvedor.

A função do IAM associada à função Lambda tem uma política de acesso administrativo

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 administrativo em uma função Lambda, em vez do conjunto mínimo de permissões que a função 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, AWS recomenda que você conceda o mínimo de privilégios, o que significa que você concede somente as permissões necessárias para realizar uma tarefa.

  1. Revise e identifique políticas administrativas

    Na descoberta de exposição, identifique o nome da função. Acesse o painel do IAM e encontre a função com o nome da função identificado anteriormente. Analise a política de permissões anexada à função 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 concedem somente as permissões específicas necessárias para que a função funcione. Para obter mais informações sobre as melhores práticas de segurança para funções do IAM, consulte Aplicar permissões de privilégios mínimos no Guia do usuário.AWS Identity and Access Management Para identificar permissões desnecessárias, você pode 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 Conclusões sobre acesso externo e não utilizado no Guia do AWS Identity and Access Management usuário. Como alternativa, você pode criar uma nova função do IAM para evitar o impacto de outras funções do Lambda usando a função existente. Nesse cenário, crie uma nova função do IAM. Em seguida, associe a nova função à instância. Para obter informações sobre a substituição de uma função do IAM por uma função, consulte Atualizar a função de execução de uma função no Guia do AWS Lambda desenvolvedor.

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

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

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

    • 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 Condições de uso nas políticas do IAM para restringir ainda mais o acesso no Guia do usuário do IAM.

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

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ífico AWS . 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 o mínimo de privilégios, o que significa que você concede somente as permissões necessárias para realizar uma tarefa.

  1. Revise e identifique políticas administrativas

    Na descoberta de exposição, identifique o nome da função no ARN. Acesse o painel do IAM e encontre o nome da função. Revise a política de permissões anexada à função. 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": "*" "Resource": "*" e.

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

    Substitua as políticas administrativas por aquelas que concedem somente as permissões específicas necessárias para que a função funcione. 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, você pode 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 Conclusões sobre acesso externo e não utilizado no Guia do AWS Identity and Access Management usuário. Como alternativa, você pode criar uma nova função do IAM para evitar o impacto de outras funções do Lambda que estão usando a função existente. Nesse cenário, crie uma nova função do IAM e associe a nova função do IAM à instância. Para obter instruções sobre como substituir uma função do IAM por uma função, consulte Atualizar a função de execução de uma função no Guia do AWS Lambda desenvolvedor.

  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 esses controles de segurança adicionais para reduzir os riscos:

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

    • 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 Condições de uso nas políticas do IAM para restringir ainda mais o acesso no Guia AWS Identity and Access Management do usuário.

    • Limites de permissões — Os limites de permissão estabelecem o máximo de permissões que uma função pode ter, fornecendo proteções para funções com acesso administrativo. Para obter mais informações, consulte Usar limites de permissões para delegar o gerenciamento de permissões no Guia do AWS Identity and Access Management usuário.

Características de acessibilidade para funções Lambda

Aqui estão as características de acessibilidade das funções Lambda e as etapas de remediação sugeridas.

A função 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 processam dados confidenciais, modificam recursos ou têm 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 melhores práticas de segurança, recomendamos restringir o acesso à função Lambda somente aos diretores autorizados.

Modificar a 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 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. Você só pode modificar as políticas baseadas em recursos de forma programática.

Traços de vulnerabilidade para funções Lambda

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

A função 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 melhores práticas de segurança, recomendamos corrigir essas vulnerabilidades para proteger sua função contra ataques.

Atualize as funções afetadas

Consulte a seção Referências na guia Vulnerabilidade para ver a característica. A documentação do fornecedor pode incluir orientações específicas de remediação. Atualize as bibliotecas vulneráveis para suas versões seguras mais recentes seguindo os procedimentos recomendados pelo fornecedor. Normalmente, o fluxo de trabalho de remediação depende de você ter implantado o pacote Lambda fazendo o upload de um arquivo zip ou criando uma função Lambda com uma imagem de contêiner. Depois de atualizar as bibliotecas, atualize o código da função Lambda para usar a versão fixa. Depois, 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. Com o 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, recomendamos corrigir essas vulnerabilidades para manter um ambiente seguro.

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