Execução da verificação de segurança automatizada¶
Este tópico descreve como usar a revisão de segurança automatizada fornecida pelo Native Apps Framework. Ele também fornece diretrizes e práticas recomendadas para a criação de aplicativos e pacotes de aplicativos seguros.
Nota
Em alguns casos, quando um aplicativo falha em uma revisão de segurança automatizada, uma revisão manual adicional do código do aplicativo pode ser realizada para confirmar o status de falha ou substituí-lo para aprovar o aplicativo.
Esta revisão manual pode levar até cinco dias úteis.
Sobre os requisitos de segurança do Native Apps Framework¶
Todos os aplicativos do Native Apps Framework que atendem às condições descritas em Sobre a verificação de segurança automatizada devem estar em conformidade com os requisitos de segurança descritos nas seções a seguir:
Requisitos de segurança para o código do aplicativo¶
O código do aplicativo incluído em um pacote de aplicativo deve estar em conformidade com os seguintes requisitos de segurança:
Seu aplicativo não deve carregar ou executar nenhum código de qualquer lugar fora do pacote de aplicativo, exceto bibliotecas fornecidas pelo Snowflake. Todo o código do aplicativo, incluindo todas as dependências de biblioteca e código de configuração, deve ser incluído na versão do aplicativo definida no pacote de aplicativo.
Todo o código do aplicativo deve ser não ofuscado, o que significa que o código deve ser legível por humanos. Este requisito inclui código JavaScript minificado.
Nota
Se um aplicativo precisar usar código JavaScript minificado, ele deverá incluir um arquivo source map correspondente que possa ser usado para recuperar o código não minificado.
Todas as dependências ou bibliotecas com vulnerabilidades e exposições comuns críticas ou altas (CVE) devem ser atualizadas para uma versão segura, se disponível.
Requisitos de segurança para a funcionalidade do aplicativo¶
Os seguintes requisitos de segurança se aplicam à funcionalidade do seu aplicativo:
Todos os aplicativos devem fornecer as seguintes informações aos clientes como parte de uma listagem:
Todas as funcionalidades e recursos do aplicativo.
Todos os pontos de extremidade da Internet e URLs ao qual o aplicativo se conecta.
Todas as funções externas no aplicativo.
Quaisquer dados do consumidor registrados, coletados ou armazenados pelo aplicativo.
Os aplicativos devem funcionar conforme anunciado na listagem de aplicativos.
Todas as instruções de instalação e configuração do aplicativo devem ser incluídas na listagem de aplicativos.
Os aplicativos não devem armazenar ou exigir que nenhum segredo do cliente esteja em texto simples.
Qualquer comunicação entre o aplicativo e a Internet deve ser feita por meio de uma conexão HTTPS com um certificado TLS válido.
Os aplicativos não devem ter nenhuma funcionalidade que possa resultar em danos à Snowflake, seus clientes ou terceiros. Danos incluem, mas não estão limitados a:
Vazamento e/ou perda de dados;
Restrição do acesso do consumidor a seus dados, a menos que seja explicitamente projetado como parte da funcionalidade do aplicativo, por exemplo, mascaramento de dados para políticas de acesso a dados.
Consumo excessivo de recursos.
Injeção/execução de código arbitrário.
Requisitos de segurança para permissões de aplicativos¶
Os seguintes requisitos de segurança se aplicam aos privilégios definidos pelo seu aplicativo:
Todos os aplicativos devem fornecer as seguintes informações no arquivo de manifesto:
Todos os privilégios exigidos pelo aplicativo em todos os objetos.
Todas as ntegrações de API
Os aplicativos devem solicitar apenas o conjunto mínimo de privilégios necessários para o funcionamento do aplicativo.
Práticas recomendadas de segurança¶
Além dos requisitos de segurança impostos pela verificação de segurança automatizada, a Snowflake recomenda as seguintes práticas ao usar o Native Apps Framework. Seguir essas práticas recomendadas ajuda a reduzir a probabilidade de um aplicativo ser bloqueado durante a análise de segurança.
Siga as práticas do ciclo de vida de desenvolvimento de software seguro (SDLC).
Revise o código do aplicativo em busca de vulnerabilidades durante o ciclo de vida do desenvolvimento e corrija-as antes de criar uma versão do aplicativo.
Revise as bibliotecas de terceiros em busca de vulnerabilidades e atualize-as para a versão segura mais recente.
Revise e atualize todas as bibliotecas de terceiros no aplicativo pelo menos uma vez por trimestre.
Siga as práticas recomendadas de segurança do Snowflake, conforme descrito a seguir:
Sobre a verificação de segurança automatizada¶
A verificação de segurança automatizada é iniciada quando qualquer um dos seguintes ocorre:
Um provedor adiciona uma versão a um pacote de aplicativo com o parâmetro DISTRIBUTION definido como EXTERNAL, a nova versão é verificada automaticamente.
Um provedor define DISTRIBUTION=EXTERNAL em um pacote de aplicativo que já possui uma versão definida. Todas as versões do pacote de aplicativo são verificadas automaticamente.
Use o comando ALTER APPLICATION PACKAGE para definir a propriedade DISTRIBUTION para um pacote de aplicativo conforme mostrado no exemplo a seguir:
ALTER APPLICATION PACKAGE HelloSnowflakePackage
SET DISTRIBUTION = EXTERNAL;
Visualização do status de uma revisão de segurança automatizada¶
Use o comando SHOW VERSIONS para visualizar o status de uma revisão de segurança automatizada, conforme mostrado no exemplo a seguir:
SHOW VERSIONS IN APPLICATION PACKAGE HelloSnowflakePackage;
A coluna review_status
exibe um dos seguintes status da revisão de segurança automatizada:
NOT_REVIEWED
IN_PROGRESS
APPROVED
REJECTED
Nota
Se um aplicativo passar na verificação de segurança automatizada, seu status será atualizado para APPROVED. Quando um aplicativo falha na verificação de segurança automatizada, ele é revisado manualmente pelo Snowflake. Após a revisão manual, o status do aplicativo é atualizado para APPROVED ou REJECTED.