Skip to main content

セキュリティの設定ミスとは?その防止方法を解説

blog hero snyk iac magenta

2021年11月1日

0 分で読めます

ソフトウェアがますます複雑になるにつれ、開発者が担う責任も増えています。コンテナ、Infrastructure as Code(IaC)をはじめとする、最新のアプリケーションアーキテクチャ設計の選択肢を扱う必要があるためです。その結果、開発チームはクラウドネイティブアプリケーションのさまざまな要素を安全に構成する責任も、これまで以上に負うようになっています。

セキュリティの設定ミスとは何か、そしてアプリケーションセキュリティにどのような影響を及ぼすのか、詳しく見ていきましょう。その後、Capital OneとCapgeminiがセキュリティの設定ミスによって大規模なデータ侵害に直面した実例を紹介します。最後に、発生し得る設定ミスの種類と、自動化されたセキュリティツールを使った防止方法について説明します。

セキュリティ設定ミスを表すグラフィック。警告付きのロックマークとクラウドセキュリティの盾が表示されたノートパソコン
セキュリティの設定ミスは、アプリケーションのセキュリティに甚大な影響を及ぼす可能性があります。

セキュリティの設定ミスとは?

セキュリティの設定ミスとは、アプリケーション、コンテナ、インフラストラクチャ、その他のソフトウェアコンポーネントに適切なセキュリティ制御が実装されていない状態を指します。こうした設定ミスによって、システムのデータや機能への不正アクセスが可能になり、最悪の場合はシステム全体の障害につながることもあります。そのため、セキュリティの設定ミスは、OWASPによるとWebアプリケーションにおける重大なセキュリティリスクのトップ10に含まれています。セキュリティスキャンを活用すれば、ソースコードや設定ファイルに潜む設定ミスを検出し、修正できます。

セキュリティの設定ミスはなぜ起こる?

多くのセキュリティの設定ミスは、特定のアプリケーションコンポーネントに推奨されるセキュリティ制御がすべて実装されていない場合や、デフォルトのセキュリティ設定が使われている場合に発生します。開発者がアカウント、管理インターフェース、データベースなどに最小権限の原則を適用しなければ、第三者に機密データを盗まれる恐れがあります。セキュリティの設定ミスの多くは人為的ミスによって生じるため、IaCと自動化への移行は、こうした脆弱性の多くを防ぐのに役立ちます。

セキュリティの設定ミスの種類

セキュリティの設定ミスはアプリケーションのさまざまなコンポーネントで発生するため、脆弱性にも多くの種類があります。たとえば、次のようなものがあります。

  • クラウドサーバーインスタンス、Webサーバー、データベースなどでデフォルトの認証情報を使用する

  • パスワード、暗号鍵、APIキーなどの機密データを暗号化しない

  • リソースへのアクセス権を制限するための最小権限の原則に従わない

  • 未公開のURLやその他の内部エンドポイントへのパブリックトラフィックを許可する

  • ファイルやディレクトリを誤って保護されていない状態にする

これらはセキュリティの設定ミスの一例にすぎませんが、組織をさまざまな攻撃にさらす恐れがあります。設定ミスは攻撃者に攻撃経路を与え、クロスサイトスクリプティング(XSS)、コードやコマンドインジェクション、バッファオーバーフロー攻撃など、さまざまなインジェクション攻撃を可能にします。

Javaアプリケーションでよく見られるセキュリティの設定ミスの一つに、エラー処理に関するものがあります。ほぼすべてのJavaアプリケーションでは、実行時にエラーが発生すると、いずれ例外がスローされます。通常、Java開発者は例外を捕捉して適切に処理しますが、捕捉されなかった例外は、デフォルトでスタックトレースなどの内部情報を露呈することがよくあります。悪意のある攻撃者はこの情報を使ってアプリケーションの内部構造を把握し、セキュリティの設定ミスを悪用した攻撃を実行できます。

新しいオープンソースソフトウェアが公開されるたびに、新たなセキュリティの設定ミスが発見されています。そのため、多くの自動セキュリティスキャンツールは、最新のセキュリティ問題や設定ミスを反映した脆弱性データベースを活用しています。Snyk Intel Vulnerability Databaseは複数のソースから脆弱性データを収集し、開発チームが最大限のカバレッジ(次に規模の大きい商用脆弱性データベースより370%多い脆弱性)を確保して、問題が深刻化する前に検出できるよう支援します。

セキュリティの設定ミスが及ぼす影響

セキュリティの設定ミスは一見、取るに足らないように思えるかもしれません。しかし、ビジネスに重大なリスクをもたらす可能性があります。実際、最近の調査では、CISOがクラウドの本番環境で最も懸念しているのは、データ侵害につながり得るセキュリティの設定ミスであることがわかりました。

Capital Oneのデータ侵害

Capital Oneのデータ侵害では、元Amazon従業員が1億件を超える消費者向けクレジット申込情報を盗みました。この事件は、わずかなセキュリティの設定ミスがいかに甚大な影響をもたらすかを示しています。原因は、設定が誤っていたオープンソースのWebアプリケーションファイアウォール(WAF)でした。このWAFは、不要な権限が付与されたバックエンドリソースの認証情報を渡すよう仕向けられる可能性がありました。この小さな設定ミスによって、攻撃者はS3バケットにアクセスし、機密データをダウンロードできました。

Capgeminiのデータ侵害

同様にCapgeminiでは、ITプロバイダーの開発サーバー上にあるデータベースの設定が不十分だったため、何百万人もの求職者の個人データが漏えいしました。その結果、第三者がパブリックインターネット経由で機密データに容易にアクセスできる状態になっていました。攻撃者は、設定ミスのあるデータベースのような、悪用しやすい標的を常にインターネット上で探しています。

多くの脅威アクターは、セキュリティの設定ミスを格好の標的と見なしています。自動化ツールで検出して悪用できるうえ、現在のクラウドネイティブアプリケーションには設定ミスが広く存在するためです。実際、最近のクラウドネイティブアプリケーションセキュリティの現状に関する調査では、開発者とセキュリティ担当者の69%が、アプリケーション内の設定ミスや未修正の脆弱性に対処した経験があることが明らかになりました。

スキャンツールを使ってセキュリティの設定ミスを防ぐ

多くのアプリケーションがセキュリティの設定ミスのリスクにさらされているため、開発中にこうした脆弱性を検出して修正するプロセスを自動化することが、組織にとって不可欠です。人為的ミスを排除し、そもそも多くのセキュリティの設定ミスが入り込むのを防げます。

Snyk IaCを使えば、開発者はTerraform、Kubernetes、Helmなどの安全な設定を記述できます。これにより、IaCの設定ミスが本番環境に到達するのを防ぎ、セキュリティの設定ミスを悪用した攻撃が問題になる前に阻止できます。

ソースコードの段階からインフラを保護

Snykはワークフロー内のIaCセキュリティとコンプライアンスを自動化し、構成ドリフトや不足しているリソースを検出します。

Snykは、最新のクラウドネイティブアプリケーションスタック全体にわたって、ほぼすべてのソフトウェアコンポーネントをスキャンし、セキュリティの設定ミスや脆弱性を検出できます。状況に応じた修正アドバイスを提供することで、開発者は安全な開発・設定の実践方法を学び、アプリケーションのセキュリティ態勢を継続的に強化できます。