Exigences de sécurité et bonnes pratiques pour une Snowflake Native App

Cette rubrique décrit les exigences de sécurité et les meilleures pratiques que les fournisseurs doivent suivre lors du développement d’une Snowflake Native App. Toutes les applications qui remplissent les conditions décrites dans Examens de sécurité automatisés doivent se conformer aux exigences de sécurité décrites dans les sections suivantes :

Note

Les exigences de sécurité sont susceptibles de changer à mesure que Snowflake continue de surveiller de nouveaux risques potentiels.

Exigences de sécurité pour le code d’application

Le code d’application inclus dans un paquet d’application doit être conforme aux exigences de sécurité suivantes :

  1. Votre application ne doit pas charger ou exécuter de code provenant d’un endroit extérieur au paquet d’application, à l’exception des bibliothèques fournies par Snowflake. Tout le code de l’application, y compris toutes les dépendances de la bibliothèque et le code d’installation, doit être inclus dans la version de l’application définie dans le paquet d’application.

  2. Tout le code de l’application doit être non flouté, ce qui signifie que le code doit être lisible par l’homme. Cette exigence comprend le code JavaScript minifié.

    Note

    Si une application doit utiliser du code JavaScript minifié, elle doit inclure un fichier de mappage des sources correspondant qui peut être utilisé pour récupérer le code non minifié.

  3. Toutes les dépendances ou bibliothèques présentant des vulnérabilités et expositions critiques ou très communes (CVE) doivent être mises à jour vers une version sécurisée, si elle est disponible.

Exigences de sécurité pour la fonctionnalité d’application

Les exigences de sécurité suivantes s’appliquent à la fonctionnalité de votre application :

  1. Toutes les applications doivent fournir les informations suivantes aux clients dans le cadre d’une annonce :

    1. Toutes les fonctionnalités et caractéristiques de l’application.

    2. Tous les points de terminaison Internet et toutes les URLs que l’application utilise pour se connecter.

    3. Toutes les fonctions externes de l’application.

    4. Toute donnée du consommateur enregistrée, collectée ou stockée par l’application.

      1. Les applications devraient interdire tous les cookies non essentiels.

      2. Les applications doivent communiquer tous les cookies essentiels aux consommateurs

  2. Les applications doivent fonctionner comme annoncé dans l’annonce des applications.

  3. Toutes les instructions d’installation et de configuration de l’application doivent être incluses dans l’annonce de l’application.

  4. Les applications ne doivent pas stocker ni nécessiter de secrets clients en texte brut.

  5. Toute communication entre l’application et Internet doit se faire via une connexion HTTPS avec un certificat TLS valide.

  6. Les applications ne doivent comporter aucune fonctionnalité susceptible de porter préjudice à Snowflake, à ses clients ou à des tiers. Les préjudices subis comprennent, mais ne sont pas limités à, ce qui suit :

    1. Fuite et/ou perte de données.

    2. Restriction de l’accès des consommateurs à leurs données, à moins que ce ne soit explicitement conçu comme faisant partie du fonctionnement de l’application, par exemple, le masquage des données pour les politiques d’accès aux données.

    3. Consommation excessive de ressources.

    4. Injection/exécution de code arbitraire.

  7. Toutes les connexions à une application, y compris les interfaces utilisateur Web et les APIs, doivent d’abord s’authentifier à l’aide d’une méthode d’authentification fournie par Snowflake. Toute authentification spécifique à l’application doit être présentée aux utilisateurs une fois l’authentification Snowflake réussie.

  8. Les applications ne doivent pas créer de points de terminaison publics autorisant les connexions à l’application sans une authentification réussie via Snowflake au préalable.

Exigences de sécurité pour les autorisations des applications

Les exigences de sécurité suivantes s’appliquent aux privilèges définis par votre application :

  1. Toutes les applications doivent fournir les informations suivantes dans le fichier du manifeste :

    1. Tous les privilèges requis par l’application sur tous les objets.

    2. Toutes les intégrations API.

  2. Les applications ne doivent demander que le minimum de privilèges nécessaires à leur fonctionnement.

Meilleures pratiques pour le développement et la publication d’un paquet d’application

Pour rationaliser le processus de développement et de publication d’une Snowflake Native App, Snowflake recommande de créer deux paquets d’application distincts :

  • Paquet d’application de développement

    Le paquet d’application de développement est destiné à des fins d’itération et de test rapides. Il devrait avoir sa propriété DISTRIBUTION définie sur INTERNAL. Cela garantit que le paquet d’application reste interne et n’est pas distribué à des consommateurs externes ou à l’analyse et à l’approbation de Snowflake.

    En gardant ce paquet séparé du paquet de production, les développeurs peuvent rapidement apporter des modifications et tester de nouvelles fonctionnalités sans déclencher le processus de révision de sécurité pour chaque itération.

  • Paquet d’application de production

    Le paquet d’application de production est destiné à la publication d’un paquet d’application et à sa distribution dans Snowflake pour analyse et approbation et aux consommateurs externes. Le paquet d’application de production doit avoir sa propriété DISTRIBUTION définie sur EXTERNAL.

    Seules les versions ayant passé avec succès l’examen de sécurité du fournisseur doivent être ajoutées à ce paquet, garantissant ainsi que l’application répond aux normes de sécurité requises avant d’être mise à la disposition des consommateurs.

En suivant les meilleures pratiques consistant à disposer de paquets de développement et de production distincts, les développeurs peuvent maintenir un cycle de vie de développement efficace tout en garantissant que seules les versions sécurisées et approuvées de l’application sont publiées et distribuées aux consommateurs externes.