ブログ

Coders Conquer Security: シェア&ラーニングシリーズ - 既知の脆弱性を持つコンポーネントの利用

April 25, 2019
Jaap Karan Singh

すべてのアプリケーションに共通するものとは何でしょうか?それはコンポーネント(依存関係やライブラリとも呼ばれます)です。世界中のコードのほとんどは、何らかの形で他のコードに依存しています。アプリケーションを作成したその瞬間から、すでに膨大な依存関係の中にいるのです!

すべてのアプリケーションはコンポーネントを利用しており、その大半は自作したものではありません。そのため、使用しているコンポーネントの脆弱性がそのままリスクとなる可能性があります。既知の脆弱性を持つコンポーネントを使用することの意味、その危険性、そして解決策について解説します。

既知の脆弱性を持つコンポーネントの使用について理解する

複雑なソフトウェアには必ず脆弱性が存在します。これは避けられない性質です。つまり、コンポーネントが100%安全であることはあり得ません。では、コンポーネントに脆弱性が見つかったとき、あなたはそれを把握できていますか?そして、対策はできていますか?

問題は、コンポーネントが寿命を過ぎて使用されたり、脆弱性が発見された後に放置されたりすることで発生します。ほとんどのコンポーネントやライブラリでは、脆弱性が公表されるのと同時、あるいはそれ以前にセキュリティパッチがリリースされます。したがって、コンポーネントの脆弱性が発見・公表されたら、可能な限り迅速にアップデートすることが極めて重要です。脆弱なソフトウェアを本番環境に残してはいけません。

コンポーネントの入手元はさまざまです。自社のカスタムコードと直接統合するサードパーティ製品を購入する場合もあります。これらのコンポーネントはコードの一部となり、同じ権限レベルで動作します。もう一つの入手元は、GitHubなどのサイトで公開されているオープンソースプロジェクトです。オープンソースは、すべてのライブラリが脆弱性について慎重に精査・監査されているわけではないため、危険を伴う可能性があります。

攻撃者はコンポーネントの脆弱性情報を悪用します。脆弱性は公開されるため、攻撃者はあなたと同じタイミングでその情報を入手します。また、攻撃者はあなたがどのコンポーネントを使用しているかを特定する手法も持っています。この情報が知られてしまえば、パッチが適用されていない場合、アプリケーションは攻撃の標的となります。

脆弱なコンポーネントがなぜ危険なのかを知る

既知の脆弱性を持つコンポーネントを使用することの危険性を示す証拠が必要なら、2017年に発生したEquifaxのデータ漏洩事件を見れば明らかです。

2017年7月、米国の信用調査機関であるEquifaxは、1億4700万人以上の個人情報が流出した大規模なデータ漏洩を発見しました。このデータ漏洩の規模と影響は前例のないものです。最近では、Equifaxのずさんなセキュリティ対策についても報じられています。

そのずさんな対策の一つがパッチ管理でした。Equifaxには適切なパッチ管理体制がなく、コンポーネントが長期間パッチ未適用のまま放置されていました。これが漏洩の直接的な原因となりました。

Equifaxのウェブサイトでは、Apache Strutsウェブフレームワークが使用されていました。攻撃者がネットワークに侵入する数ヶ月前、Strutsフレームワークに脆弱性(Apache Struts CVE-2017-5638)が発見されていました。しかし、Equifaxはこの脆弱性にパッチを適用しませんでした。攻撃者はこの脆弱性を悪用してEquifaxのネットワークに侵入し、そこから膨大な個人情報にアクセスしたのです。

多くのウェブサイトは、自社で開発したものではないウェブフレームワークを基盤としています。必要な機能をすべてゼロから構築するのはあまりに膨大な作業となるため、これは標準的な手法です。しかし、フレームワークに強く依存することは、脆弱性を抱えるリスクにもつながります。次のEquifaxにならないようにしましょう。

脆弱なコンポーネントから身を守る方法

脆弱なコンポーネントの使用を防ぐ特効薬はありません。しかし、脆弱なコンポーネントが悪用されてシステムが侵害されるリスクを軽減するためのポリシーや管理策は存在します。

アプリケーションの構築にどのコンポーネントのどのバージョンを使用しているかを把握する必要があります。OWASP Dependency Checkのような依存関係管理ツールは、使用している依存関係を把握するのに役立ちます。Dependency Checkは、使用しているコンポーネントに公開された脆弱性があるかどうかも教えてくれます。

パッチ管理手法も不可欠です。脆弱性が発見された際に、パッチをダウンロードし、テストを行い、本番環境へスムーズにリリースするためのシステムを構築しておきましょう。ソフトウェアに常にパッチを適用しておくことで、数ヶ月前の脆弱性を攻撃者に悪用される事態を防ぐことができます。

最後に、オープンソースやサードパーティ製コンポーネントの利用に関するポリシーを策定してください。開発者が煩雑な手続きを嫌うのはもっともですが、自社で作成していないコードには審査プロセスが不可欠です。過度に厳格である必要はありませんが、未知のコンポーネントが使用されるのを防ぐために必須です。少なくとも、使用しているコンポーネントのインベントリを常に最新の状態に保つようにしてください。

サードパーティ製コンポーネントのリスクを回避する

コンポーネントには脆弱性がつきものです。ビジネスアプリケーションでは、ベンダー製かオープンソースかを問わず、何らかのコンポーネントが使用されます。しかし、それによって組織が攻撃の脅威にさらされる必要はありません。

攻撃者が脆弱性を知るタイミングは、多くの場合、パッチが公開されるタイミングと同時です。そのため、自社のアプリケーションで何が使用されているかを把握しておくことが重要です。どのコンポーネントに脆弱性があるのかを理解し、常に最新のパッチを適用してください。

脆弱なコンポーネントを発見(そして撃退)する準備はできましたか?アリーナへ向かい、戦いに挑みましょう: [こちらから開始]

タグライン

AI主導の開発をリリース前にガバナンスする

AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。

デモを予約する
リソースライブラリ

他のブログ記事を見る

セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。

すべて表示
導入事例
フィルターラベル
これはdivブロック内のテキストです。

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.

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

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

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

セキュリティ文化の統一:Sageはいかにしてチャンピオンプログラムを構築したか

Sageがどのようにして柔軟かつ関係性を重視したアプローチでセキュリティを強化し、200名以上のセキュリティチャンピオンを育成して、目に見えるリスク低減を実現したのかをご紹介します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

2026年サイバーセキュリティ意識向上月間:企業防衛に不可欠なAIセキュリティの理解

主要なAI企業の多くが、安全対策が追いつくまでの間、AI開発を世界的に減速させるよう公に呼びかける事態となっています。しかし現実には、深刻なセキュリティ問題はすでに顕在化しています。AI導入に伴う金銭的コストやリスクが増大し続ける中、多くのセキュリティリーダーや経営陣は差し迫った状況に追い込まれています。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

イネーブラー8:プログラムのブランディング

セキュアコーディングプログラムを成功させるには、優れたコンテンツ以上のものが必要です。イネーブラー8では、ブランディングによって参加を「憧れのステータスを得る体験」へと変える方法を解説します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

すべての従業員が今、AIサイバーセキュリティの最前線に立っている

エンタープライズテクノロジーの状況は、手遅れになるまで誰も予測できなかったほどの速さで変化しています。私たちは今、人間が書いたコードと基本的なコパイロット支援の時代から、エージェント型開発ライフサイクル(ADLC)の時代へと正式に足を踏み入れました。自律型AIエージェントは、複数の機能にわたってかつてない効率性をもたらす一方で、全く新しい種類のセキュリティリスクや規制リスクも引き起こしています。

詳細はこちら

AIを活用した開発をリリース前にセキュアに

開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。

デモを予約する
該当する項目が見つかりません。