コーダーがセキュリティを制する:共有&学習シリーズ - トランスポート層保護の不備

アプリケーションサーバーやそのバックエンドシステムを完全に保護していたとしても、トランスポート層の保護が不十分であれば、通信が盗聴されるリスクは残ります。現実の世界で、現金が装甲車で運ばれるのは、輸送中の安全を確保するためです。店舗や銀行のセキュリティがどれほど強固であっても、そこから運び出された現金がゴルフカートに乗せられて街中を移動するようでは、何の意味もありません。
サイバー空間におけるトランスポート層も同様です。アプリケーション自体が安全であっても、そこに入力される情報が保護されていなければ、重大な脆弱性が存在することになります。さらに、一部のアプリでは、情報を他のサーバーやデータベースに送信する際にもう一つの脆弱性が生じます。その情報は、本来その通信を監視する権限のない内部関係者にさらされる可能性があるのです。
ユーザーとデータを完全に保護するには、トランスポート層の保護が不可欠です。それを行って初めて、トランザクション全体をエンドツーエンドで完全に保護することができます。
本エピソードでは、以下の内容を学びます。
- ハッカーがトランスポート層保護の不備をどのように悪用するか
- なぜトランスポート層を保護しないことがこれほど危険なのか
- アプリケーションやサーバーに出入りするすべてのデータの転送を保護するために何ができるか
攻撃者はどのようにトランスポート層保護の不備を悪用するのか?
トランスポート層保護の不備は、データストリーム内の2つのポイントで攻撃を可能にします。最も一般的に悪用されるのは、ユーザーとアプリケーションサーバーの間です。情報が平文で送信されたり、脆弱な暗号化しか施されていなかったりすると、ハッカーは情報を監視、盗取、さらには改ざんできるようになります。これにより、ハッカーはユーザーのクレジットカード情報やログイン資格情報など、アプリケーションサーバーに送信されるあらゆる情報を盗み出す可能性があります。サーバー自体が安全であっても、サーバーとユーザー間の安全でないチャネルをハッカーが監視していれば、膨大な情報にほぼ無制限にアクセスできてしまうのです。
もう一つの見落とされがちなポイントは、アプリケーションとネットワークの他の部分との間のトランスポート層です。例えば、アプリケーションサーバーがオンラインショッピングの注文を処理し、それをフルフィルメントシステムに送信する場合や、単にデータをデータベースに保存するために転送する場合などが挙げられます。これらの内部チャネルが保護されていなければ、内部ユーザーがその情報を閲覧できてしまう可能性があります。
すべての内部ユーザーが善人であると信じたいところですが、実際には多くの業界で内部脅威が増加しています。攻撃者や競合他社のために機密情報を収集する見返りとして、賄賂を受け取っていた内部関係者が摘発されるケースもあります。数千件もの有効なクレジットカード情報にアクセスできるという状況は、一部の人々にとっては誘惑が強すぎるのかもしれません。
攻撃手法の観点から見ると、保護されていない通信を傍受することはそれほど難しくありません。低レベルのハッカーであっても、暗号化されていないデータストリームに対して中間者攻撃を行う方法を知っています。もし知らなくても、オンラインには30分もあれば学べるチュートリアル動画が溢れています。
なぜトランスポート層保護の不備という脆弱性はこれほど危険なのか?
トランスポート層の保護が不十分、あるいは存在しないことが危険なのは、ハッカーが機密情報を極めて簡単に収集できてしまうからです。彼らはアプリサーバーに侵入したり、ネットワークをハッキングしたりする必要さえありません。単に中間者攻撃を仕掛けるだけで、ユーザーからサーバーに送信されるすべての情報を読み取ることができます。これには、将来的に正規の資格情報としてセキュリティを回避するために悪用される可能性のあるユーザー名やパスワードも含まれます。アプリケーションによっては、クレジットカード情報やその他の個人データが含まれることもあります。
さらに重要なのは、この盗聴行為のすべてがネットワークの外で行われているという点です。安全でないトランスポートチャネルを使用している場合、誰かが情報を傍受しているかどうかを知る術はありません。通常、最初の兆候は、多くのユーザーからアカウントの乗っ取りや身に覚えのないクレジットカード決済の報告が相次ぐことであり、その共通要因があなたのアプリケーションであると判明したときには、すでに手遅れです。ハッカーは情報を入手した後、配送先住所を変更したり、サーバーの応答に悪意のあるスクリプトを挿入してユーザーに転送したりするなど、情報を改ざんすることも可能です。
バックエンド側では、トランスポート層の保護を怠ることで、データが内部関係者にさらされることになります。外部のハッカーがトランスポート層を盗聴するのに比べれば、内部関係者による盗聴の可能性は低いかもしれません。しかし、万が一発生した場合の危険性はより高くなります。内部関係者はユーザーデータだけでなく、アプリサーバーがパケットを送信する前に付加した独自の機密情報まで閲覧できてしまうからです。
トランスポート層保護の不備という脆弱性を排除する
トランスポート層保護の不備は非常に危険ですが、すべてのトランスポートチャネルを適切に保護することはそれほど困難ではありません。まずはバックエンドのインフラストラクチャから始めましょう。通信はHTTPSに限定し、サイト内でHTTPSとHTTPを混在させないようにしてください。最後に、2048ビット以上の鍵サイズの有効なSSL証明書を維持し、すべてのユーザーに対してHTTP Strict Transport Security (HSTS) を使用した安全なブラウザでのアクセスを強制するようにしましょう。
インフラストラクチャの構築後は、強力なプロトコルを使用してトランスポート層を保護する必要があります。理想的にはTLS 1.2を使用すべきですが、やむを得ない場合はTLS 1.1や1.0も許容されます。その環境が整い次第、SSLv2のような脆弱なプロトコルは完全に無効化し、サポートを終了してください。
バックエンドで使用する暗号化方式が十分に強力であることにも注意を払う必要があります。理想的なセッションキーの最小サイズは128ビットです。プロトコルと同様に、DESやRC4-40といった脆弱な暗号アルゴリズムのサポートは無効化してください。最後に、サーバー自体だけでなく、そこに至るすべてのデータ経路が十分に保護されるまでは、アプリケーションが真に安全であるとは見なさないでください。
トランスポート層保護の不備に関する脆弱性の詳細情報
詳細については、OWASPのトランスポート層保護ガイドをご覧ください。また、習得した防御知識を試すには、サイバーセキュリティチームを究極のサイバー戦士へと育成するSecure Code Warriorプラットフォームの無料デモをご活用ください。この脆弱性やその他の脅威への対策について詳しくは、Secure Code Warriorブログをご覧ください。
AI主導の開発をリリース前にガバナンスする
AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。
他のブログ記事を見る
セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
AIを活用した開発をリリース前にセキュアに
開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。



.avif)