自動セキュリティスキャンの実行

このトピックでは、Native Apps Frameworkが提供する自動セキュリティ確認を使用する方法について説明します。また、セキュアアプリケーションパッケージとアプリケーションを作成するためのガイドラインとベストプラクティスも提供します。

注釈

アプリケーションが自動セキュリティ確認に失敗した場合は、アプリケーションコードの追加的な手動の確認を実施して失敗ステータスを確認するか、あるいは、失敗ステータスを上書きしてアプリケーションを承認することが必要になる場合があります。

この手動確認には最大5営業日かかる場合があります。

Native Apps Frameworkのセキュリティ要件について

自動セキュリティスキャンについて で説明された条件を満たすNative Apps Frameworkアプリケーションすべては、次のセクションで概説されるセキュリティ要件に準拠する必要があります。

アプリケーションコードのセキュリティ要件

アプリケーションパッケージに含まれるアプリケーションコードは、以下のセキュリティ要件に準拠している必要があります。

  1. アプリケーションは、Snowflakeが提供するライブラリを除き、アプリケーションパッケージの外部からコードをロードしたり実行したりすることはできません。すべてのライブラリ依存とセットアップコードを含む、すべてのアプリケーションコードは、アプリケーションパッケージで定義されたアプリケーションバージョンに含まれている必要があります。

  2. すべてのアプリケーションコードは難読化されていない、つまり可読性のあるコードにする必要があります。この要件には、ミニファイ化された JavaScript コードも含まれます。

    注釈

    アプリケーションでミニファイ処理された JavaScript コードを使用する必要がある場合は、コードをアンミニファイ処理するために使用する、対応ソースマップファイルを含める必要があります。

  3. クリティカルな、あるいは一般によく知られている脆弱性や暴露(CVE)を含む依存関係やライブラリは、可能な場合、すべて安全なバージョンに更新する必要があります。

アプリケーション機能のセキュリティ要件

以下のセキュリティ要件は、アプリケーションの機能に適用されます。

  1. すべてのアプリケーションは、リストの一部として以下の情報を顧客に提供する必要があります。

    1. すべてのアプリケーションの機能と特徴。

    2. アプリケーションが接続するすべてのインターネットエンドポイントおよび URLs。

    3. アプリケーション内のすべての外部関数。

    4. アプリケーションによってログ、収集、または格納されたコンシューマーデータ。

  2. アプリケーションは、アプリケーションリストに掲載されているとおりに機能する必要があります。

  3. すべてのアプリケーションのインストールとセットアップの手順は、アプリケーションのリストに含まれている必要があります。

  4. アプリケーションは、プレーンテキストで顧客の秘密を保存したり、リクエストしたりすることはできません。

  5. アプリケーションとインターネット間の通信は、有効な TLS 証明書を持つ HTTPS 接続を経由する必要があります。

  6. アプリケーションは、Snowflake、Snowflakeの顧客、または第三者に損害を与える可能性のある機能を有してはなりません。損害には以下のものが含まれますが、これらに限定されません。

    1. データの漏洩や紛失。

    2. たとえば、データアクセスポリシーのためのデータマスキングなど、アプリケーション機能の一部として明示的に設計されている場合を除き、コンシューマーのデータへのアクセスを制限すること。

    3. リソースの過剰な消費。

    4. 任意のコードインジェクション/実行。

アプリケーションの権限に対するセキュリティ要件

以下のセキュリティ要件は、アプリケーションによって設定された権限に適用されます。

  1. すべてのアプリケーションは、マニフェストファイルに以下の情報を提供する必要があります。

    1. すべてのオブジェクトでアプリケーションが必要とするすべての権限。

    2. すべての API 統合。

  2. アプリケーションは、アプリケーションが機能するために必要な最小限の権限のみをリクエストするようにします。

自動セキュリティスキャンについて

以下のいずれかが発生すると、自動セキュリティスキャンが開始されます。

  • DISTRIBUTION パラメーターが EXTERNAL に設定されているアプリケーションパッケージにプロバイダーがバージョンを追加する場合。新しいバージョンが自動的にスキャンされます。

  • プロバイダーが、すでにバージョンが定義されているアプリケーションパッケージに DISTRIBUTION=EXTERNAL を設定する場合。すべてのバージョンのアプリケーションパッケージが自動的にスキャンされます。

次の例に示すように、 ALTER APPLICATION PACKAGE コマンドを使用して、アプリケーションパッケージの DISTRIBUTION プロパティを設定します。

ALTER APPLICATION PACKAGE HelloSnowflakePackage
  SET DISTRIBUTION = EXTERNAL;
Copy

自動セキュリティ確認のステータスの表示

以下の例に示すように、自動セキュリティ確認のステータスを表示するには、 SHOW VERSIONS コマンドを使用します。

SHOW VERSIONS IN APPLICATION PACKAGE HelloSnowflakePackage;
Copy

review_status 列には、以下に挙げる自動セキュリティ確認のステータスのうち、いずれかが表示されます。

  • NOT_REVIEWED

  • IN_PROGRESS

  • APPROVED

  • REJECTED

注釈

アプリケーションが自動セキュリティスキャンに合格すると、そのステータスは APPROVED に更新されます。アプリケーションが自動セキュリティスキャンに失敗すると、Snowflakeによって手動で確認されます。手動で確認後、アプリケーションステータスは、 APPROVED または REJECTED に更新されます。