自動セキュリティスキャンの実行¶
このトピックでは、Native Apps Frameworkが提供する自動セキュリティ確認を使用する方法について説明します。また、セキュアアプリケーションパッケージとアプリケーションを作成するためのガイドラインとベストプラクティスも提供します。
注釈
アプリケーションが自動セキュリティ確認に失敗した場合は、アプリケーションコードの追加的な手動の確認を実施して失敗ステータスを確認するか、あるいは、失敗ステータスを上書きしてアプリケーションを承認することが必要になる場合があります。
この手動確認には最大5営業日かかる場合があります。
Native Apps Frameworkのセキュリティ要件について¶
自動セキュリティスキャンについて で説明された条件を満たすNative Apps Frameworkアプリケーションすべては、次のセクションで概説されるセキュリティ要件に準拠する必要があります。
アプリケーションコードのセキュリティ要件¶
アプリケーションパッケージに含まれるアプリケーションコードは、以下のセキュリティ要件に準拠している必要があります。
アプリケーションは、Snowflakeが提供するライブラリを除き、アプリケーションパッケージの外部からコードをロードしたり実行したりすることはできません。すべてのライブラリ依存とセットアップコードを含む、すべてのアプリケーションコードは、アプリケーションパッケージで定義されたアプリケーションバージョンに含まれている必要があります。
すべてのアプリケーションコードは難読化されていない、つまり可読性のあるコードにする必要があります。この要件には、ミニファイ化された JavaScript コードも含まれます。
注釈
アプリケーションでミニファイ処理された JavaScript コードを使用する必要がある場合は、コードをアンミニファイ処理するために使用する、対応ソースマップファイルを含める必要があります。
クリティカルな、あるいは一般によく知られている脆弱性や暴露(CVE)を含む依存関係やライブラリは、可能な場合、すべて安全なバージョンに更新する必要があります。
アプリケーション機能のセキュリティ要件¶
以下のセキュリティ要件は、アプリケーションの機能に適用されます。
すべてのアプリケーションは、リストの一部として以下の情報を顧客に提供する必要があります。
すべてのアプリケーションの機能と特徴。
アプリケーションが接続するすべてのインターネットエンドポイントおよび URLs。
アプリケーション内のすべての外部関数。
アプリケーションによってログ、収集、または格納されたコンシューマーデータ。
アプリケーションは、アプリケーションリストに掲載されているとおりに機能する必要があります。
すべてのアプリケーションのインストールとセットアップの手順は、アプリケーションのリストに含まれている必要があります。
アプリケーションは、プレーンテキストで顧客の秘密を保存したり、リクエストしたりすることはできません。
アプリケーションとインターネット間の通信は、有効な TLS 証明書を持つ HTTPS 接続を経由する必要があります。
アプリケーションは、Snowflake、Snowflakeの顧客、または第三者に損害を与える可能性のある機能を有してはなりません。損害には以下のものが含まれますが、これらに限定されません。
データの漏洩や紛失。
たとえば、データアクセスポリシーのためのデータマスキングなど、アプリケーション機能の一部として明示的に設計されている場合を除き、コンシューマーのデータへのアクセスを制限すること。
リソースの過剰な消費。
任意のコードインジェクション/実行。
アプリケーションの権限に対するセキュリティ要件¶
以下のセキュリティ要件は、アプリケーションによって設定された権限に適用されます。
すべてのアプリケーションは、マニフェストファイルに以下の情報を提供する必要があります。
すべてのオブジェクトでアプリケーションが必要とするすべての権限。
すべての API 統合。
アプリケーションは、アプリケーションが機能するために必要な最小限の権限のみをリクエストするようにします。
推奨されるセキュリティのベストプラクティス¶
自動セキュリティスキャンによって課されるセキュリティ要件に加えて、Snowflakeは、Native Apps Frameworkを使用する際に以下のベストプラクティスをお勧めします。これらのベストプラクティスに従うと、セキュリティ確認中にアプリケーションがブロックされる可能性を低減する助けになります。
安全なソフトウェア開発ライフサイクル(SDLC)を実践します。
開発ライフサイクル中にアプリケーションコードの脆弱性を確認し、アプリケーションのバージョンを作成する前に脆弱性を修正します。
サードパーティのライブラリに脆弱性がないかどうかを確認し、最新の安全なバージョンにアップデートします。
少なくとも四半期に一度は、アプリケーション内のすべてのサードパーティライブラリを見直し、更新します。
以下に説明するSnowflakeセキュリティのベストプラクティスに従います。
自動セキュリティスキャンについて¶
以下のいずれかが発生すると、自動セキュリティスキャンが開始されます。
DISTRIBUTION パラメーターが EXTERNAL に設定されているアプリケーションパッケージにプロバイダーがバージョンを追加する場合。新しいバージョンが自動的にスキャンされます。
プロバイダーが、すでにバージョンが定義されているアプリケーションパッケージに DISTRIBUTION=EXTERNAL を設定する場合。すべてのバージョンのアプリケーションパッケージが自動的にスキャンされます。
次の例に示すように、 ALTER APPLICATION PACKAGE コマンドを使用して、アプリケーションパッケージの DISTRIBUTION プロパティを設定します。
ALTER APPLICATION PACKAGE HelloSnowflakePackage
SET DISTRIBUTION = EXTERNAL;
自動セキュリティ確認のステータスの表示¶
以下の例に示すように、自動セキュリティ確認のステータスを表示するには、 SHOW VERSIONS コマンドを使用します。
SHOW VERSIONS IN APPLICATION PACKAGE HelloSnowflakePackage;
review_status
列には、以下に挙げる自動セキュリティ確認のステータスのうち、いずれかが表示されます。
NOT_REVIEWED
IN_PROGRESS
APPROVED
REJECTED
注釈
アプリケーションが自動セキュリティスキャンに合格すると、そのステータスは APPROVED に更新されます。アプリケーションが自動セキュリティスキャンに失敗すると、Snowflakeによって手動で確認されます。手動で確認後、アプリケーションステータスは、 APPROVED または REJECTED に更新されます。