Exécution de l’analyse de sécurité automatisée¶
Cette rubrique décrit comment utiliser l’examen de sécurité automatisé fourni par le Native Apps Framework. Il fournit également des lignes directrices et des bonnes pratiques pour la création de paquets d’applications et d’applications sécurisés.
Note
Dans certains cas, lorsqu’une application échoue à un examen de sécurité automatisé, un examen manuel supplémentaire du code de l’application peut être effectué pour confirmer le statut d’échec ou l’annuler afin d’approuver l’application.
Cet examen manuel peut prendre jusqu’à cinq jours ouvrables.
À propos des exigences de Native Apps Framework en matière de sécurité¶
Toutes les applications du Native Apps Framework qui remplissent les conditions décrites dans À propos de l’analyse de sécurité automatisée doivent se conformer aux exigences de sécurité décrites dans les sections suivantes :
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 :
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.
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é.
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 les fonctionnalités des applications¶
Les exigences de sécurité suivantes s’appliquent à la fonctionnalité de votre application :
Toutes les applications doivent fournir les informations suivantes aux clients dans le cadre d’une annonce :
Toutes les fonctions de l’application.
Tous les points de terminaison Internet et toutes les URLs que l’application utilise pour se connecter.
Toutes les fonctions externes de l’application.
Toute donnée du consommateur enregistrée, collectée ou stockée par l’application.
Les applications doivent fonctionner comme indiqué dans l’annonce de l’application.
Toutes les instructions relatives à l’installation et à la configuration de l’application doivent être incluses dans l’annonce de l’application.
Les applications ne doivent pas stocker ou exiger que les secrets des clients soient en texte brut.
Toute communication entre l’application et Internet doit se faire via une connexion HTTPS avec un certificat TLS valide.
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 :
Fuite et/ou perte de données.
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.
Consommation excessive de ressources.
Injection/exécution de code arbitraire.
Exigences de sécurité pour les autorisations d’application¶
Les exigences de sécurité suivantes s’appliquent aux privilèges définis par votre application :
Toutes les applications doivent fournir les informations suivantes dans le fichier du manifeste :
Tous les privilèges requis par l’application sur tous les objets.
Toutes les intégrations API.
Les applications ne doivent demander que le minimum de privilèges nécessaires à leur fonctionnement.
Meilleures pratiques de sécurité recommandées¶
Outre les exigences de sécurité imposées par l’analyse de sécurité automatisée, Snowflake recommande les meilleures pratiques suivantes lors de l’utilisation du Native Apps Framework. Le respect de ces bonnes pratiques permet de réduire la probabilité qu’une application soit bloquée lors de l’examen de sécurité.
Suivez les pratiques sécurisées du cycle de vie du développement logiciel (SDLC).
Examinez le code de l’application pour détecter les vulnérabilités au cours du cycle de vie du développement et corrigez-les avant de créer une version de l’application.
Vérifiez que les bibliothèques tierces ne présentent pas de vulnérabilités et mettez-les à jour avec la dernière version sécurisée.
Examinez et mettez à jour toutes les bibliothèques tierces dans l’application au moins une fois par trimestre.
Suivez les meilleures pratiques de Snowflake en matière de sécurité décrites ci-après :
À propos de l’analyse de sécurité automatisée¶
L’analyse de sécurité automatisée est lancée lorsque l’un des événements suivants se produit :
Un fournisseur ajoute une version à un paquet d’application dont le paramètre DISTRIBUTION est défini sur EXTERNAL, la nouvelle version est analysée automatiquement.
Un fournisseur définit DISTRIBUTION=EXTERNAL sur un paquet d’application qui a déjà une version définie. Toutes les versions du paquet d’application sont analysées automatiquement.
Utilisez la commande ALTER APPLICATION PACKAGE pour définir la propriété DISTRIBUTION d’un paquet d’application, comme le montre l’exemple suivant :
ALTER APPLICATION PACKAGE HelloSnowflakePackage
SET DISTRIBUTION = EXTERNAL;
Vue du statut d’un examen de sécurité automatisé¶
Utilisez la commande SHOW VERSIONS pour voir le statut d’un examen de sécurité automatisé, comme le montre l’exemple suivant :
SHOW VERSIONS IN APPLICATION PACKAGE HelloSnowflakePackage;
La colonne review_status
affiche l’un des statuts suivants de l’examen de sécurité automatisé :
NOT_REVIEWED
IN_PROGRESS
APPROVED
REJECTED
Note
Si une application réussit l’examen de sécurité automatisé, son statut est mis à jour sur APPROVED. Lorsqu’une application échoue à l’examen de sécurité automatisé, elle est examinée manuellement par Snowflake. Après examen manuel, le statut de l’application est mis à jour et devient APPROVED ou REJECTED.