LCNC-SEC-08: データとシークレットの処理の不備

リスク評価 *

普及度
検出難易度
悪用難易度
技術的影響

3

2

3

3

要旨

ローコード/ノーコードアプリケーションはデータやシークレットを「コード」の一部として、あるいはプラットフォームが提供するマネージドデータベースに保存することが多く、これらは規制やセキュリティ要件に準拠して適切に保存する必要があります。

ビジネスユーザーへの説明

ほとんどのアプリケーションはデータを保存したり使用しますが、その中には他のものより機密性が高いものもあります。どのデータが「機密データ」とみなされるか、もしくはそのデータを保護するプロセスを開発者が知らないと、機密情報が漏洩する可能性があります。

これにはユーザー名とパスワード、他のシステムにアクセスするための認証情報、個人を特定できる情報 (PII) など、特定のビジネスに基づくデータが含まれることがあります。

説明

ローコード/ノーコードベンダーが管理するデータベースに保存されるデータには、個人情報や金融データなどの機密データが含まれることがよくあります。 ローコード/ノーコードの構築者はそれらについてデータをどのように保存するかを決めることができますが、管理者はこのようなマネージドデータベースを見ることができないことがよくあります。 多くの場合、機密データは暗号化されずに保存され、規制要件を考慮することなく地理的位置間で移動が行われています。

さらに、構築者はシークレットを「コード」にハードコードすることが多くあります。 環境変数、コンフィグレーション、コードのいずれであっても、アプリケーションは他のサービスにアクセスするためにハードコードされたシークレットに依存することがよくあります。 ハードコードされたシークレットはアプリケーションへの書き込み権限を持つすべてのユーザーが利用でき、クライアント側のコードを介してアプリケーションリーダーや匿名ユーザーに漏洩する可能性もあります。

さらに、多くのネイティブログストリームにはアプリケーションログ、メトリクス、およびアプリケーションを通過する機密データが混在しています。 多くのプラットフォームではアプリケーションがデフォルトで使用する実際のデータポイントをログに含みます。

攻撃シナリオの例

シナリオ #1

ある開発者は機密データとなるフォームへの入力をユーザーに求めるビジネスアプリケーションを作成しました。 プラットフォームが提供するマネージドデータベースを使用して結果を保存します。 マネージドデータベースはデフォルトで他のすべての開発者と一所に保存されるため、すべての開発者は機密データにアクセスできてしまいます。

シナリオ #2

ある開発者はカスタム API を使用するアプリケーションを作成し、そのコードに API キーをハードコードしました。 他の開発者はその API キーに直接アクセスできます。 さらに、その API キーがアプリのクライアントコードに漏洩し、ユーザーがそのキーに直接アクセスできるようになる可能性があります。

攻撃と悪用のシナリオの例 - ビジネスユーザー

シナリオ #1

認証情報をデータベースに保存するアプリケーションが開発されました。データベースには人間が読める形式でパスワードを保存し、誰でも閲覧できます。このデータベースにアクセスできる従業員は高度な権限を持つ管理者アカウントを含む社内の全従業員のパスワードを閲覧できます。

シナリオ #2

EU 居住者の個人データを保存する新しいアプリケーションが構築されました。開発者はユーザーが要求に応じて個人データを削除できるようにする GDPR の規則を知りません。要求に応じてデータを削除するプロセスを構築するのではなく、企業はこれらの要求を手作業で処理する必要があるため、GDPR の規則への一貫した遵守ができなくなります。このような一貫性のない行動は罰金、監査指摘、その他の罰則につながる可能性があります。

防止方法

  • データストレージに関連するコンプライアンス、プライバシー、セキュリティリスクについてビジネスユーザーに教育する。

  • ノーコード/ローコードベンダーが提供するマネージドデータベース、環境変数、コンフィグレーションに機密データがないか監視する。

  • 機密データにアクセスするアプリケーションにはセキュリティチームが関与する。

参考資料

Last updated