3 principes pour créer des fonctions sécurisées sans serveur

Image caractéristique via Pixabay

Les fonctions sans serveur, qui représentent environ la moitié des charges de travail aujourd’hui, dans les entreprises axées sur le cloud, sont devenus un moyen populaire de déployer des applications, en grande partie parce que le sans serveur minimise le nombre de complexités auxquelles les équipes doivent réfléchir. En éliminant le besoin de configurer des serveurs hôtes, les fonctions sans serveur simplifient les opérations informatiques.

Cela ne signifie pas pour autant que les fonctions sans serveur simplifient également la sécurité. Au contraire, divers défis et risques de sécurité peuvent survenir dans les environnements informatiques sans serveur. C’est pourquoi il est essentiel d’avoir un plan pour protection des fonctions sans serveur et l’architecture qui les supporte.

Cet article passe en revue les principaux risques de sécurité qui affectent les fonctions sans serveur, puis aborde les principes clés de gestion de ces risques.

Risques de sécurité des fonctions sans serveur

La principale différence entre sans serveur informatique et l’informatique traditionnelle est que le sans serveur libère les équipes de développement et d’exploitation informatique de la configuration et de la gestion de l’environnement de serveur sous-jacent dans lequel les applications s’exécutent.

Au-delà de cette différence, cependant, les fonctions sans serveur fonctionnent de manière similaire aux technologies de déploiement d’applications conventionnelles telles que les machines virtuelles et les conteneurs, et elles sont soumises aux mêmes types de risques :

  • Logiciels malveillants qui existe dans les fonctions sans serveur.
  • Contrôles d’accès non sécurisés pour déterminer à quelles ressources chaque fonction sans serveur peut accéder, ainsi que qui peut déployer, arrêter et modifier les fonctions sans serveur.
  • Dépendances tierces non sécurisées que les fonctions sans serveur appellent lorsqu’elles s’exécutent.
  • Gestion non sécurisée de données sensibles ou secrets que les fonctions sans serveur produisent ou accèdent.

De plus, les fonctions sans serveur sont exposées à un type d’attaque spécial qui est moins répandu avec d’autres types de technologies de déploiement :

  • L’épuisement des ressources financières se produit lorsque les attaquants forcent les fonctions sans serveur à s’exécuter de manière répétée. Étant donné que les fonctions sans serveur s’exécutent à la demande et que les fournisseurs de cloud facturent des frais relativement élevés pour le temps d’exécution sans serveur, les attaques par épuisement des ressources financières permettent aux parties malveillantes d’augmenter les factures de cloud de leurs cibles. La plupart des autres types de technologies d’hébergement ne sont pas soumis à ce type d’attaque car ils utilisent des modèles de tarification différents.

Trois principes fondamentaux pour protéger les fonctions sans serveur

Les risques de sécurité sans serveur décrits ci-dessus peuvent être atténués fonction par fonction à l’aide de divers outils, tels que analyseurs de configuration qui vérifient les fonctions pour les oublis de configuration. Les équipes peuvent et doivent profiter de ces outils pour protéger leurs fonctions.

Cependant, à un niveau plus profond, la sécurité devrait être intégrée dans les fonctions sans serveur elles-mêmes. En d’autres termes, les équipes doivent prendre des mesures pour s’assurer que leur approche globale de l’informatique sans serveur est aussi sécurisée que possible. Cette stratégie intègre une autre couche de protection qui va au-delà de la sécurisation des fonctions individuelles.

Voici trois façons d’intégrer la sécurité dans vos fonctions sans serveur.

1. Assurez-vous que votre stratégie sans serveur inclut la sécurité dès la conception

Les fonctions sans serveur sont faciles à déployer et il peut être tentant de s’y tourner comme un moyen simple et économique d’exécuter les applications dont vous avez besoin.

Mais cela ne signifie pas que les fonctions sans serveur constituent la solution la plus sécurisée pour déployer chaque charge de travail. Certains types d’applications, telles que celles qui doivent gérer des données hautement sensibles de manière complexe ou qui nécessitent des dépendances tierces étendues, sont difficiles à sécuriser, ce qui donne aux équipes moins de contrôle et de visibilité sur l’environnement d’hébergement.

Le point à retenir ici est que vous ne devez pas utiliser de fonctions sans serveur pour déployer des charges de travail qui nécessitent un niveau de contrôle de sécurité et d’observabilité difficile à atteindre à l’aide de fonctions sans serveur. Parfois, le sans serveur n’est tout simplement pas la solution, malgré sa simplicité.

2. Soyez minimaliste

Les fonctions sans serveur sont conçues pour faciliter l’exécution de petits morceaux de code discrets à la demande. Cependant, il peut être facile d’oublier ce principe et de traiter plutôt les fonctions sans serveur comme un moyen de déployer n’importe quel type d’application.

C’est une erreur, non seulement parce que cela signifie généralement que vous ne profiterez pas des principaux avantages des fonctions sans serveur, mais aussi parce que plus vous exécutez de code dans chaque fonction, plus vous risquez de mal configurer quelque chose ou d’introduire des éléments non sécurisés. dépendances.

Une meilleure pratique consiste à adopter une approche minimaliste de l’informatique sans serveur. Efforcez-vous de réduire le code à l’intérieur de chaque fonction au strict minimum. En plus d’aider à économiser de l’argent et à améliorer les performances, cette stratégie améliorera la sécurité globale sans serveur.

3. Isoler les fonctions

Bien qu’il soit courant que des fonctions sans serveur se déclenchent mutuellement pour exécuter des flux de travail nécessitant plusieurs fonctions, les équipes doivent s’efforcer d’isoler chaque fonction dans la mesure du possible.

Isoler entre les fonctions revient à appliquer une approche “zéro confiance” à la configuration des fonctions : par défaut, aucune fonction ne devrait faire aveuglément confiance une autre fonction ou considérer que les données reçues de celle-ci sont sécurisées. De plus, les ingénieurs doivent configurer des périmètres étroits autour de chaque fonction en limitant strictement les ressources auxquelles les fonctions peuvent accéder.

Enfin, dans la mesure du possible, les équipes doivent éviter que les fonctions s’invoquent directement, car cette approche ouvre la porte à des problèmes tels que les attaques d’épuisement financier dans le cas où une fonction serait compromise par des pirates. Au lieu de cela, gérez l’exécution des fonctions à l’aide d’un plan de contrôle externe plutôt que de vous fier à la logique intégrée aux fonctions individuelles.

Conclusion : sécurisation des fonctions et des technologies sans serveur

En bref, les fonctions sans serveur sont une technologie puissante, mais elles ont leurs limites, notamment en matière de sécurité. Avant d’adopter le sans serveur, il est essentiel de comprendre les risques de sécurité potentiels et de prendre des mesures pour intégrer des défenses dans votre stratégie globale sans serveur.

Pour plus de conseils sur la sécurisation des fonctions sans serveur, ainsi que des données sur la façon dont les entreprises abordent la sécurité sans serveur aujourd’hui, consultez le “Rapport sur les tendances de la technologie sans serveur 2022», développé par Techstrong Research en collaboration avec Orca Security.

Lectures complémentaires

Groupe Créé avec Sketch.

Leave a Comment