Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Corriger les risques liés aux fonctions Lambda
Note
Security Hub est en version préliminaire et peut faire l'objet de modifications.
AWS Security Hub peut générer des résultats d'exposition pour les AWS Lambda fonctions (Lambda).
Sur la console Security Hub, la fonction Lambda impliquée dans la détection d'une exposition et ses informations d'identification sont répertoriées dans la section Ressources des détails de la recherche. Par programmation, vous pouvez récupérer les détails des ressources grâce au GetFindingsV2fonctionnement de l'API Security Hub.
Après avoir identifié la ressource impliquée dans un constat d'exposition, vous pouvez supprimer la ressource si vous n'en avez pas besoin. La suppression d'une ressource non essentielle peut réduire votre profil d'exposition et vos AWS coûts. Si la ressource est essentielle, suivez ces étapes de correction recommandées pour atténuer le risque. Les sujets de remédiation sont divisés en fonction du type de trait.
Un seul résultat d'exposition contient des problèmes identifiés dans plusieurs rubriques de remédiation. À l'inverse, vous pouvez corriger une constatation d'exposition et en réduire le niveau de gravité en abordant un seul sujet de remédiation. Votre approche en matière de remédiation des risques dépend des exigences et des charges de travail de votre organisation.
Note
Les conseils de remédiation fournis dans cette rubrique peuvent nécessiter des consultations supplémentaires dans d'autres AWS ressources.
Note
Les conseils de remédiation fournis dans cette rubrique peuvent nécessiter des consultations supplémentaires dans d'autres AWS ressources.
Table des matières
Caractéristiques de mauvaise configuration pour les fonctions Lambda
Voici les caractéristiques de mauvaise configuration des fonctions Lambda et les étapes de correction suggérées.
La fonction Lambda exécute un environnement d'exécution non pris en charge
Lambda permet aux développeurs d'exécuter du code sans provisionner ni gérer de serveurs via des environnements d'exécution qui exécutent votre code dans un environnement géré. Lambda applique automatiquement des correctifs et des mises à jour de sécurité aux environnements d'exécution gérés et aux images de base de conteneurs correspondantes. Lorsqu'une version d'exécution n'est plus prise en charge, elle ne reçoit plus de mises à jour de sécurité, de corrections de bogues ou de support technique. Les fonctions exécutées sur des environnements d'exécution obsolètes peuvent présenter des failles de sécurité et peuvent éventuellement cesser de fonctionner en raison de problèmes tels que l'expiration des certificats. En outre, les environnements d'exécution non pris en charge peuvent être vulnérables aux failles de sécurité récemment découvertes en l'absence de correctifs disponibles. Conformément aux meilleures pratiques de sécurité, nous recommandons d'utiliser des environnements d'exécution corrigés et pris en charge pour les fonctions Lambda.
Exécution de la fonction de mise
Dans l'onglet Ressources de l'exposition, ouvrez la ressource avec le lien hypertexte. Cela ouvrira la fenêtre de la fonction Lambda. Pour mettre à niveau votre fonction vers un environnement d'exécution compatible, configurez la configuration de gestion du temps d'exécution. Vous pouvez choisir de mettre automatiquement à jour votre fonction vers la dernière version d'exécution, mais avant de sélectionner cette option, déterminez si les mises à niveau automatiques peuvent avoir un impact sur vos applications en cours d'exécution. Pour plus d'informations, consultez Comprendre comment Lambda gère les mises à jour des versions d'exécution.
La fonction Lambda est déployée en dehors d'un Amazon VPC
Les fonctions Lambda sont déployées par défaut avec un accès à l'Internet public. Cette configuration par défaut permet aux fonctions Lambda d'atteindre des points de terminaison de AWS service et externes APIs, mais elle les expose également à des risques de sécurité potentiels. Les fonctions avec accès à Internet peuvent être utilisées pour exfiltrer des données, communiquer avec des serveurs non autorisés ou devenir des points d'entrée pour des acteurs externes si elles sont compromises. Amazon VPC permet d'isoler le réseau en limitant vos fonctions Lambda pour qu'elles communiquent uniquement avec les ressources du réseau privé que vous avez défini. Conformément aux principes de sécurité standard, nous recommandons de déployer des fonctions Lambda au sein d'un VPC afin d'améliorer la sécurité grâce à l'isolation du réseau.
Attacher une fonction au VPC
Dans le résultat d'exposition, ouvrez la ressource contenant le lien hypertexte. Cela ouvrira la fenêtre de la fonction Lambda. Pour sécuriser votre fonction Lambda en limitant son accès au réseau, connectez-la à un VPC doté des contrôles réseau appropriés. Avant d'associer votre fonction à un VPC, planifiez tout accès au AWS service dont elle pourrait avoir besoin, car les fonctions des sous-réseaux privés sans passerelles NAT ni points de terminaison VPC ne pourront pas accéder au service. AWS APIs Pour plus d'informations sur la façon d'associer une fonction Lambda à un Amazon VPC dans votre compte, consultez Attacher des fonctions Lambda à un Amazon VPC de votre compte. Compte AWS Envisagez d'utiliser des points de terminaison VPC pour la connectivité des services sans accès à Internet si votre fonction nécessite d'accéder aux AWS services depuis un sous-réseau privé. Configurez une passerelle NAT si vous avez besoin d'une connectivité Internet sortante à partir de sous-réseaux privés.
La fonction Lambda peut assumer un rôle IAM
Les fonctions Lambda utilisent des rôles IAM pour interagir avec les services. AWS Ces rôles accordent à la fonction Lambda l'autorisation d'accéder aux AWS ressources pendant l'exécution. Bien que ces rôles soient parfois nécessaires pour que les fonctions Lambda puissent exécuter leurs tâches, ils doivent respecter le principe du moindre privilège. Conformément aux principes de sécurité standard, il est AWS recommandé de vérifier si les autorisations associées au rôle sont appropriées en fonction des fonctionnalités prévues par la fonction.
-
Déterminez si le rôle IAM attaché est requis
Déterminez si la fonction Lambda nécessite la configuration d'un rôle d'exécution IAM. La plupart des fonctions Lambda nécessitent des autorisations de base pour fonctionner, telles que l'écriture de journaux dans. CloudWatch Passez en revue les autorisations associées au rôle d'exécution de la fonction et déterminez si le rôle IAM est requis pour la fonction. Pour plus d'informations sur les rôles d'exécution Lambda, consultez la section Définition des autorisations de fonction Lambda avec un rôle d'exécution dans le Guide du développeur.AWS Lambda
-
Implémentation d'un accès sur la base du moindre privilège
Remplacez les politiques trop permissives par celles qui n'accordent que les autorisations spécifiques nécessaires au fonctionnement de la fonction. Pour plus d'informations sur les meilleures pratiques de sécurité pour les rôles IAM, consultez la section Appliquer les autorisations de moindre privilège dans le Guide de l'AWS Identity and Access Management utilisateur. Pour identifier les autorisations inutiles, vous pouvez utiliser l'analyseur d'accès IAM pour comprendre comment modifier votre politique en fonction de l'historique des accès. Pour plus d'informations, consultez la section Constatations relatives aux accès externes et non utilisés dans le Guide de AWS Identity and Access Management l'utilisateur. Vous pouvez également créer un nouveau rôle IAM pour éviter d'affecter les autres fonctions Lambda qui utilisent le rôle existant. Dans ce scénario, créez un nouveau rôle IAM, puis associez-le à l'instance. Pour obtenir des instructions sur le remplacement d'un rôle IAM par une fonction, voir Mettre à jour le rôle d'exécution d'une fonction dans le Guide du AWS Lambda développeur.
Le rôle IAM associé à la fonction Lambda dispose d'une politique d'accès administratif
Les politiques d'accès administratif fournissent aux fonctions Lambda des autorisations étendues sur les AWS services et les ressources. Ces politiques incluent généralement des autorisations qui ne sont pas requises pour les fonctionnalités. Fournir une identité IAM avec une politique d'accès administratif à une fonction Lambda, au lieu de l'ensemble minimal d'autorisations dont le rôle d'exécution a besoin, peut augmenter la portée d'une attaque si la fonction est compromise. Conformément aux principes de sécurité standard, il est AWS recommandé d'accorder le minimum de privilèges, ce qui signifie que vous n'accordez que les autorisations requises pour effectuer une tâche.
-
Examiner et identifier les politiques administratives
Dans le résultat de l'exposition, identifiez le nom du rôle. Accédez au tableau de bord IAM et recherchez le rôle dont le nom a été identifié précédemment. Passez en revue la politique d'autorisation associée au rôle IAM. S'il s'agit d'une politique AWS gérée, recherchez
AdministratorAccess
ouIAMFullAccess
. Sinon, dans le document de politique, recherchez les énoncés qui contiennent"Effect": "Allow", "Action": "*"
les énoncés"Resource": "*"
ensemble. -
Implémentation d'un accès sur la base du moindre privilège
Remplacez les politiques administratives par celles qui n'accordent que les autorisations spécifiques nécessaires au fonctionnement de la fonction. Pour plus d'informations sur les meilleures pratiques de sécurité pour les rôles IAM, consultez la section Appliquer les autorisations du moindre privilège dans le guide de l'AWS Identity and Access Management utilisateur. Pour identifier les autorisations inutiles, vous pouvez utiliser l'analyseur d'accès IAM pour comprendre comment modifier votre politique en fonction de l'historique des accès. Pour plus d'informations, consultez la section Constatations relatives aux accès externes et non utilisés dans le Guide de AWS Identity and Access Management l'utilisateur. Vous pouvez également créer un nouveau rôle IAM pour éviter d'affecter les autres fonctions Lambda en utilisant le rôle existant. Dans ce scénario, créez un nouveau rôle IAM. Associez ensuite le nouveau rôle à l'instance. Pour plus d'informations sur le remplacement d'un rôle IAM par une fonction, voir Mettre à jour le rôle d'exécution d'une fonction dans le Guide du AWS Lambda développeur.
-
Considérations relatives à la configuration sécurisée
Si des autorisations d'accès administratives sont nécessaires pour l'instance, envisagez de mettre en œuvre ces contrôles de sécurité supplémentaires pour atténuer les risques :
-
Authentification multifactorielle (MFA) — L'authentification multifactorielle ajoute une couche de sécurité supplémentaire en exigeant une forme d'authentification supplémentaire. Cela permet d'empêcher tout accès non autorisé même si les informations d'identification sont compromises. Pour plus d'informations, voir Exiger une authentification multifactorielle (MFA) dans AWS Identity and Access Management le guide de l'utilisateur.
-
Conditions IAM : la configuration des éléments de condition vous permet de limiter le moment et la manière dont les autorisations administratives peuvent être utilisées en fonction de facteurs tels que l'adresse IP source ou l'âge du MFA. Pour plus d'informations, consultez la section Utiliser les conditions dans les politiques IAM pour restreindre davantage l'accès dans le Guide de l'utilisateur IAM.
-
Limites d'autorisation : les limites d'autorisation définissent le maximum d'autorisations qu'un rôle peut avoir, en fournissant des garde-fous pour les rôles dotés d'un accès administratif. Pour plus d'informations, voir Utiliser les limites d'autorisations pour déléguer la gestion des autorisations au sein d'un compte dans le Guide de AWS Identity and Access Management l'utilisateur.
-
Le rôle IAM associé à la fonction Lambda possède une politique d'accès administratif à un service AWS
Les politiques d'administration des services permettent aux fonctions Lambda d'effectuer toutes les actions au sein d'un service spécifique AWS . Ces politiques accordent généralement plus d'autorisations que ce qui est nécessaire pour le fonctionnement d'une fonction. Si une fonction Lambda associée à une politique d'administration de service est compromise, un attaquant pourrait utiliser ces autorisations pour accéder ou modifier des données ou des services sensibles au sein de votre AWS environnement. Conformément aux principes de sécurité standard, nous vous recommandons d'accorder le minimum de privilèges, ce qui signifie que vous n'accordez que les autorisations nécessaires à l'exécution d'une tâche.
-
Examiner et identifier les politiques administratives
Dans le résultat de l'exposition, identifiez le nom du rôle dans l'ARN. Accédez au tableau de bord IAM et recherchez le nom du rôle. Passez en revue la politique d'autorisation associée au rôle. S'il s'agit d'une politique AWS gérée, recherchez
AdministratorAccess
ouIAMFullAccess
. Sinon, dans le document de politique, recherchez les déclarations contenant les instructions"Effect": "Allow", "Action": "*"
et"Resource": "*"
. -
Implémentation d'un accès sur la base du moindre privilège
Remplacez les politiques administratives par celles qui n'accordent que les autorisations spécifiques nécessaires au fonctionnement de la fonction. Pour en savoir plus, consultez Appliquer les autorisations de moindre privilège dans le Guide de l'utilisateur AWS Identity and Access Management . Pour identifier les autorisations inutiles, vous pouvez utiliser l'analyseur d'accès IAM pour comprendre comment modifier votre politique en fonction de l'historique des accès. Pour plus d'informations, consultez la section Constatations relatives aux accès externes et non utilisés dans le Guide de AWS Identity and Access Management l'utilisateur. Vous pouvez également créer un nouveau rôle IAM pour éviter d'affecter les autres fonctions Lambda qui utilisent le rôle existant. Dans ce scénario, créez un nouveau rôle IAM, puis associez-le à l'instance. Pour obtenir des instructions sur le remplacement d'un rôle IAM par une fonction, voir Mettre à jour le rôle d'exécution d'une fonction dans le Guide du AWS Lambda développeur.
-
Considérations relatives à la configuration sécurisée
Si des autorisations administratives au niveau du service sont nécessaires pour l'instance, envisagez de mettre en œuvre ces contrôles de sécurité supplémentaires pour atténuer les risques :
-
Authentification multifactorielle (MFA) — L'authentification multifactorielle ajoute une couche de sécurité supplémentaire en exigeant une forme d'authentification supplémentaire. Cela permet d'empêcher tout accès non autorisé même si les informations d'identification sont compromises. Pour plus d'informations, voir Exiger une authentification multifactorielle (MFA) dans AWS Identity and Access Management le guide de l'utilisateur.
-
Conditions IAM : la configuration des éléments de condition vous permet de limiter le moment et la manière dont les autorisations administratives peuvent être utilisées en fonction de facteurs tels que l'adresse IP source ou l'âge du MFA. Pour plus d'informations, consultez la section Utiliser les conditions dans les politiques IAM pour restreindre davantage l'accès dans le Guide de l'AWS Identity and Access Management utilisateur.
-
Limites d'autorisations : les limites d'autorisation définissent le maximum d'autorisations qu'un rôle peut avoir, fournissant ainsi des garanties pour les rôles dotés d'un accès administratif. Pour plus d'informations, voir Utiliser les limites d'autorisations pour déléguer la gestion des autorisations dans le Guide de AWS Identity and Access Management l'utilisateur.
-
Caractéristiques d'accessibilité pour les fonctions Lambda
Voici les caractéristiques d'accessibilité des fonctions Lambda et les étapes de correction suggérées.
La fonction Lambda peut être invoquée publiquement
Les politiques basées sur les ressources Lambda déterminent qui peut invoquer vos fonctions. Une fonction dont la politique de ressources inclut « * » comme principal (ou aucun principal du tout) permet à tout AWS utilisateur authentifié de l'invoquer. Cela crée des risques importants, en particulier pour les fonctions qui traitent des données sensibles, modifient les ressources ou disposent d'autorisations élevées. Les utilisateurs non autorisés pourraient exploiter cette configuration pour effectuer des opérations indésirables, potentiellement exposer des données, manipuler des ressources ou abuser des fonctionnalités. Conformément aux meilleures pratiques en matière de sécurité, nous recommandons de restreindre l'accès aux fonctions Lambda uniquement aux principaux autorisés.
Modifier la politique basée sur les ressources de la fonction
Dans l'onglet Ressources de l'exposition, ouvrez la ressource avec le lien hypertexte. Cela ouvrira la fenêtre de la fonction Lambda. Limitez l'accès à votre fonction Lambda en spécifiant uniquement le AWS compte autorisé IDs ou des principaux IAM spécifiques (utilisateurs, rôles ou services) dans la politique basée sur les ressources. Vous ne pouvez modifier les politiques basées sur les ressources que par programmation.
Caractéristiques de vulnérabilité des fonctions Lambda
Voici les caractéristiques de vulnérabilité des fonctions Lambda et les étapes de correction suggérées.
La fonction Lambda présente des vulnérabilités logicielles exploitables par le réseau
Les progiciels utilisés dans le code de fonction Lambda peuvent contenir des vulnérabilités et des expositions communes (CVEs) qui ont de fortes chances d'être exploitées. CVEs Les éléments critiques présentent des risques de sécurité importants pour votre AWS environnement. Les attaquants peuvent exploiter ces vulnérabilités non corrigées pour compromettre la confidentialité, l'intégrité ou la disponibilité des données, ou pour accéder à d'autres systèmes. Les vulnérabilités critiques présentant une forte probabilité d'exploitation constituent des menaces de sécurité immédiates, car le code d'exploitation peut déjà être accessible au public et utilisé activement par des attaquants ou des outils d'analyse automatisés. Conformément aux meilleures pratiques de sécurité, nous vous recommandons de corriger ces vulnérabilités afin de protéger votre fonction contre les attaques.
Mettre à jour les fonctions concernées
Consultez la section Références de l'onglet Vulnérabilité pour le trait. La documentation du fournisseur peut inclure des conseils de correction spécifiques. Mettez à jour les bibliothèques vulnérables vers leurs dernières versions sécurisées en suivant les procédures recommandées par le fournisseur. Généralement, le flux de travail de correction varie selon que vous avez déployé le package Lambda en téléchargeant un fichier zip ou en créant une fonction Lambda avec une image de conteneur. Après avoir mis à jour les bibliothèques, mettez à jour le code de la fonction Lambda pour utiliser la version fixe. Déployez ensuite la version mise à jour.
La fonction Lambda présente des vulnérabilités logicielles
Les fonctions Lambda utilisent souvent des bibliothèques et des dépendances tierces qui peuvent contenir des failles de sécurité moins graves ou exploitables que les fonctions critiques. CVEs Bien que ces vulnérabilités non critiques ne soient pas immédiatement exploitables, elles représentent tout de même des failles de sécurité susceptibles d'être associées à d'autres vulnérabilités pour compromettre votre fonctionnement. Au fil du temps, de nouvelles techniques d'exploitation pourraient également apparaître, augmentant le risque lié à ces vulnérabilités. Conformément aux principes de sécurité standard, nous recommandons de corriger ces vulnérabilités afin de maintenir un environnement sécurisé.
Consultez la section Références de l'onglet Vulnérabilité pour le trait. La documentation du fournisseur peut inclure des conseils de correction spécifiques. Mettez à jour les bibliothèques vulnérables vers leurs dernières versions sécurisées en suivant les procédures recommandées par le fournisseur. Généralement, le flux de travail de correction varie selon que vous avez déployé le package Lambda en téléchargeant un fichier zip ou en créant une fonction Lambda avec une image de conteneur. Après avoir mis à jour les bibliothèques, mettez à jour le code de la fonction Lambda pour utiliser la version fixe. Déployez ensuite la version mise à jour.