Webアプリケーションセキュリティとは?

Webアプリケーションのセキュリティは、あらゆるビジネスにとって重要です。一般的なWebアプリケーションの脆弱性とその軽減方法について学ぶ。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • Webアプリケーションセキュリティのコアコンセプトを学ぶ
  • 一般的なWebアプリの脆弱性/悪用事例を調べる
  • 脅威を軽減する一般的な方法を理解する

記事のリンクをコピーする

Webアプリケーションセキュリティとは?

Webアプリケーションのセキュリティ

Webアプリケーションセキュリティとは、Webサイトやアプリケーション、APIを攻撃から保護することです。その範囲は多岐に及びますが、その究極の目的は、Webアプリケーションを円滑に機能させ、サイバー破壊行為、データ窃盗、非倫理的競争、その他の悪影響からビジネスを保護することです。

インターネットのグローバルな性質により、WebアプリケーションやAPIは、多くの場所、様々な規模や複雑さのレベルからの攻撃にさらされています。このように、Webアプリケーションのセキュリティは、さまざまな戦略を包含し、ソフトウェアのサプライチェーンの多くの部分をカバーしています。

一般的なWebアプリケーションのセキュリティリスクとは?

Webアプリケーションは、攻撃者の目標、標的となる組織の業務内容、アプリケーション特有のセキュリティギャップに応じて、様々な種類の攻撃に直面する可能性があります。一般的な攻撃の種類は以下の通りです。

  • ゼロデイ脆弱性:アプリケーションのメーカーが把握していない脆弱性で、修正プログラムが存在しないものです。今では、毎年2万件以上、この攻撃が見られます。攻撃者は、これらの脆弱性を素早く利用しようとし、セキュリティベンダーの保護策を回避しようとすることが多いのです。
  • クロスサイトスクリプティング(XSS):XSSは、攻撃者がクライアント側のスクリプトをWebページに挿入して、重要な情報に直接アクセスしたり、ユーザーになりすましたり、ユーザーをだまして重要な情報を開示させたりできる脆弱性です。
  • SQLインジェクション(SQi):SQiは、攻撃者がデータベースが検索クエリを実行する方法の脆弱性を悪用する方法です。攻撃者はSQiを使用して、不正に情報へのアクセスを取得したり、ユーザー権限を変更したり新たに作成したり、機密データを操作したり破壊したりします。
  • サービス拒否(DoS)および分散型サービス拒否(DDoS)攻撃:さまざまなベクトルにより、攻撃者は標的となるサーバーまたはその周辺インフラストラクチャをさまざまな種類の攻撃トラフィックによって過負荷にすることができます。サーバーが着信要求を効果的に処理できなくなると、サーバーの動作が遅くなり、最終的に正当なユーザーからの着信要求に対するサービスが拒否されます。
  • メモリ破損:メモリ破損は、メモリ内のロケーションが意図せずに変更されると発生し、ソフトウェアで予測しない挙動が発生する可能性があります。不正な行為者は、コードインジェクションやバッファオーバーフロー攻撃などのエクスプロイトを介して、メモリの破損を探り出し、悪用しようとします。
  • バッファオーバーフロー:バッファオーバーフローは、ソフトウェアがバッファと呼ばれるメモリ内の定義されたスペースにデータを書き込むときに発生する異常です。バッファの容量がオーバーフローすると、隣接するメモリロケーションがデータで上書きされます。この挙動を悪用して、悪意のあるコードをメモリに挿入し、標的となるマシンに脆弱性を作成する可能性があります。
  • クロスサイトリクエストフォージェリ(CSRF):クロスサイトリクエストフォージェリでは、被害者をだまして、自身の認証または許可を利用するリクエストを作成させます。ユーザーのアカウント権限を活用することにより、攻撃者はユーザーを装ったリクエストを送信できます。ユーザーのアカウントが侵害/危害を受けると、攻撃者は重要な情報を盗み出し、破壊、または変更できます。管理者や役員などの高い権限を持つアカウントは、一般的に標的にされます。
  • クレデンシャルスタッフィング:攻撃者は、ボットを使って、盗んだユーザー名とパスワードの組み合わせを、Webアプリケーションのログインポータルに大量に素早く入力することがあります。この行為によって、攻撃者が実際のユーザーのアカウントにアクセスできるようになった場合、ユーザーのデータを盗んだり、ユーザー名で不正な買い物をしたりする可能性があります。
  • ページスクレイピング:攻撃者はボットを使って、Webページから大規模にコンテンツを盗むこともあります。競合他社に対する価格優位性を得るため、悪意のある目的でページオーナーを模倣するため、などの理由でこのコンテンツを使用する可能性があります。
  • APIの乱用:アプリケーションプログラミングインターフェイス(API)とは、2つのアプリケーションが互いに通信するためのソフトウェアです。他のソフトウェアと同様に、これらのソフトウェアにも脆弱性があり、攻撃者が悪意のあるコードをあるアプリケーションに送り込んだり、あるアプリケーションから別のアプリケーションに移動する際に機密データを傍受したりすることができる場合があります。これは、APIの利用が増加するにつれて、ますます一般的になっている攻撃タイプです。OWASPのAPIトップ10リストは、組織が今日直面している主要なAPIセキュリティリスクを簡潔にまとめています。
  • シャドウAPI:開発チームは、ビジネス目標を達成するために迅速に作業を行い、セキュリティチームに知らせずにAPIを構築して公開することが頻繁にあります。これらの未知のAPIは、APIの保護を任務とするセキュリティチームがその存在に気づかないまま「影(シャドウ)」で運用され、企業の機密データを暴露する可能性があります。
  • サードパーティーコードの乱用:最近のWebアプリケーションの多くは、サードパーティー製の様々なツールを使用しています。例えば、サードパーティー製の決済処理ツールを使用するeコマースサイトなどです。攻撃者がこれらのツールの1つに脆弱性を発見した場合、そのツールを侵害し、そのツールが処理するデータを盗んだり、機能を停止させたり、アプリケーション内の他の場所に悪意のあるコードを注入するためにそれを使用したりすることができます。決済代行会社からクレジットカード情報を抜き取る「Magecart」攻撃は、この種類の攻撃の一例です。これらの攻撃は、ブラウザのサプライチェーン攻撃とも言われています。
  • 攻撃対象領域の設定ミス:組織の攻撃対象領域とは、インターネットからアクセスできるサーバー、デバイス、SaaS、クラウド資産など、サイバー攻撃を受ける可能性があるITの全領域を指します。この攻撃対象領域は、特定の要素の見落としや設定ミスにより、攻撃に対して脆弱なままとなる可能性があります。

Webアプリケーションのセキュリティ戦略として重要なことは何ですか?

前述のとおり、Webアプリケーションのセキュリティは、広範で常に変化し続ける分野です。そのため、この分野のベストプラクティスは、新しい攻撃や脆弱性が出現するたびに変化します。しかし、現代のインターネット上の脅威は非常に活発であり、どの企業も自社のビジネスニーズに対応した特定の「最低限必要な機能」を備えたセキュリティサービスなしには立ち行かなくなるでしょう。

  • DDoS軽減DDoS軽減サービスは、サーバーと公衆インターネットの間に位置し、特殊なフィルタリングと極めて高い帯域容量を使用して、悪意のあるトラフィックのサージがサーバーを圧倒するのを防ぎます。最近のDDoS攻撃の多くは、最も回復力のあるサーバーを圧倒するのに十分な悪意のあるトラフィックを伝送するため、これらのサービスは重要です。
  • Webアプリケーションファイアウォール(WAF):Webアプリケーションの脆弱性を利用することが知られている、または疑われているトラフィックをフィルタリングするものです。WAFが重要なのは、新しい脆弱性があまりにも早く、静かに出現するため、ほとんどすべての組織が自力で捕らえることができないからです。
  • APIゲートウェイ:見過ごされていた「シャドウAPI」を特定し、APIの脆弱性を狙うことが知られている、または疑われているトラフィックをブロックするのに役立ちます。また、APIのトラフィックを管理・監視する役割も担っています(APIセキュリティの詳細についてはこちら)。
  • DNSSECWebアプリケーションのDNSトラフィックが正しいサーバーに安全にルーティングされ、ユーザーが中間者攻撃に干渉されないことを保証するためのプロトコルです。
  • 暗号化証明書の管理:プライベートキーの生成、証明書の更新、脆弱性による証明書の失効など、SSL/TLS暗号化プロセスの主要な要素を第三者が管理すること。これにより、それらの要素が見落とされ、プライベートなトラフィックが流出するリスクを排除することができます。
  • ボット管理機械学習などの専門的な検知方法を用いて、自動トラフィックと人間のユーザーを区別し、前者がWebアプリケーションにアクセスできないようにするものです。
  • クライアントサイドセキュリティ:サードパーティーの新しいJavaScriptの依存関係とサードパーティーのコードの変更をチェックし、組織が悪意のある活動をより早くキャッチできるようにします。
  • 攻撃対象領域の管理:実行可能な攻撃対象領域管理ツールは、数回のクリックで攻撃対象領域をマッピングし、潜在的なセキュリティリスクを特定し、リスクを軽減するためのツールです。

企業はベンダーにどのようなアプリケーションセキュリティのベストプラクティスを求めるべきでしょうか?

Web開発者は、攻撃者による個人情報へのアクセス、ユーザーアカウントへの不正アクセス、その他の悪意のある行為を防止する方法で、アプリケーションを設計・構築することができます。OWASPのトップ10リストは、開発者が注意すべき最も一般的なアプリケーションセキュリティリスクを捉えています。これらのリスクを防ぐための実践は以下の通りです。

  • 入力検証の必要性:不適切にフォーマットされたデータがアプリケーションのワークフローを通過するのをブロックすることは、インジェクション攻撃によって悪意のあるコードがアプリケーションに侵入するのを防止するのに役立ちます。
  • 最新の暗号化の使用:ユーザーデータを暗号化して保存し、さらにHTTPSを使用して送受信のトラフィックを暗号化することで、攻撃者によるデータの窃盗を防止することができます。
  • 強力な認証の提供と権限付与強力なパスワードの制御を構築して実施し、ハードキーを含む多要素認証オプションを提供し、アクセス制御オプションを提供し、その他の慣行として、攻撃者がユーザーアカウントに不正にアクセスしてアプリケーション内で横移動するのをより困難にします。
  • APIを追跡する:攻撃の対象となり得る、見落とされた「シャドウAPI」を特定するツールは存在しますが、そもそもAPIが見落とされることがなければ、APIセキュリティは容易になります。
  • コード変更の文書化:セキュリティチームと開発チームが、新たに発生した脆弱性をより早く修正するのに役立ちます。

CloudflareはどのようにしてWebアプリケーションのセキュリティを確保しているのですか?

Cloudflareは、グローバル275都市ネットワークを運営し、DDoS軽減WebアプリケーションファイアウォールAPI保護DNSSECマネージドSSL/TLSボット管理クライアントサイドセキュリティなどを含む、上記のセキュリティサービスの多くを提供することが可能です。

これらのサービスはすべて、当社のネットワーク内のどのデータセンターからでも実行できるように設計されており、攻撃の発生源に近い場所で攻撃を阻止することができます。これらは、当社のWebサイトパフォーマンスサービスと統合されているため、新しいセキュリティ保護を追加しても、トラフィックの速度が低下することはありません。さらに、これらのサービスは、あらゆる種類のWebサイトのインフラストラクチャに対応し、多くの場合、数分で起動することができます。

試してみたい方は、Cloudflareのプランにサインアップしてください。