セキュリティ脆弱性とは、攻撃者がシステムやデータを侵害するために悪用できる弱点です。本ガイドでは、脆弱性の種類、組織への潜在的な影響、および脆弱性管理の重要性について解説します。
ソフトウェアのバグや設定ミスなど、脆弱性の一般的な発生源について学び、これらのリスクを特定・評価・軽減するためのベストプラクティスを発見してください。脆弱性管理の最新動向と、組織のセキュリティ態勢を強化する方法について常に情報を入手しましょう。
ソフトウェアの脆弱性から企業を安全に守る方法
セキュリティの脆弱性から安全を守るためには、企業はサイバーセキュリティのベストプラクティスに従う必要があります。これには、以下の対策が含まれます。
- セキュリティ監査と評価を定期的に実施し、脆弱性を特定して優先順位付けを行う。
- 堅牢なパッチ管理プログラムを導入し、すべてのソフトウェアとシステムが最新のセキュリティパッチと修正プログラムで更新されていることを保証する。
- 脆弱性スキャナーやその他のセキュリティツールを使用して、脆弱性を迅速に特定し修正する。
- 従業員に対し、潜在的な脆弱性の特定と報告方法について教育を実施し、報告された脆弱性への対応プロセスを確立する。
- 信頼できるセキュリティパートナーまたはマネージドセキュリティサービスプロバイダーと連携し、自社環境内の脆弱性の特定と軽減を支援する。
- ペネトレーションテストを定期的に実施し、現実世界の攻撃をシミュレートして環境内の脆弱性を特定・修正する。
- 堅牢なアクセス制御と認証メカニズムを導入し、システムやデータへの不正アクセスを防止してください。
企業に対して利用される脆弱性の種類とは?
セキュリティ侵害に利用される最も有名な脆弱性には以下が含まれます:
- SQLインジェクション:この脆弱性により、攻撃者は悪意のあるSQLコードをデータベースに注入し、機密データへのアクセスやデータベース操作が可能になります。
- クロスサイトスクリプティング(XSS):この脆弱性により、攻撃者は悪意のあるJavaScriptコードをウェブサイトに注入し、ユーザーデータを盗んだりその他の悪意のある行動を実行したりすることが可能になります。
- リモートコード実行(RCE): この脆弱性により、攻撃者はリモートシステム上で任意のコードを実行したり、不正アクセスを得たり、その他の悪意のある行動を実行したりすることが可能になります。
- 検証されていない入力: この脆弱性により、攻撃者はウェブサイトやアプリケーションに悪意のある入力を提供し、セキュリティ制御を回避したり、任意のコードを実行したりすることが可能になります。
- 保護されていない認証情報: この脆弱性は、ユーザー名やパスワードなどの機密データが保護されていない状態で保存されている場合に発生し、攻撃者が容易にアクセスできるようにします。
- 保護されていないネットワーク: ネットワークが適切に構成されていない、またはファイアウォールなどのセキュリティ対策で保護されていない場合に発生する脆弱性であり、攻撃者が容易にアクセスできる状態となります。
- 保護されていないデバイス: ノートパソコンや携帯電話などのデバイスが適切に保護されていない場合に発生する脆弱性であり、攻撃者が容易にアクセスして機密データを盗み出すことが可能となります。
企業を侵害するために利用された脆弱なソフトウェアの例には以下が含まれます:
- Adobe Flash:このソフトウェアはインターネット上で広く使用されていましたが、バッファオーバーフローやヒープオーバーフロー攻撃を含む複数のセキュリティエクスプロイトに対して脆弱であることも知られていました。
- Microsoft Windows: このオペレーティングシステムは世界で最も広く使用されていますが、リモートコード実行や権限昇格脆弱性など、数多くのセキュリティ脆弱性の標的ともなってきました。&
- Apache Web Server: このウェブサーバーソフトウェアはインターネット上で広く利用されていますが、クロスサイトスクリプティングやクロスサイトリクエストフォージェリ攻撃を含むセキュリティ脆弱性の標的ともなってきました。
- Oracle Database:このデータベースソフトウェアは企業で広く利用されていますが、SQLインジェクションや権限昇格攻撃などのセキュリティ脆弱性の標的ともなっています。
- Adobe Acrobat Reader: このソフトウェアはPDFファイルの閲覧に広く利用されていますが、リモートコード実行やヒープオーバーフロー攻撃などのセキュリティ脆弱性の標的ともなっています。
- Java:このプログラミング言語はWebアプリケーション開発に広く利用されていますが、クロスサイトスクリプティングやリモートコード実行攻撃などのセキュリティ脆弱性の標的ともなっています。
- PHP: このプログラミング言語はWebアプリケーション開発に広く利用されていますが、SQLインジェクションやクロスサイトスクリプティング攻撃などのセキュリティ脆弱性の標的ともなっています。
実環境で最も頻繁に悪用される脆弱性の1つがCVE-2017-0199です。これはMicrosoft Officeのリモートコード実行脆弱性であり、攻撃者が被害者のシステム上で悪意のあるコードを実行することを可能にします。この脆弱性は、Ryuk、エモテット、ドライドックスマルウェアファミリーです。
脆弱なソフトウェアのパッチ適用が重要な理由とは?
CISOとして、脆弱なソフトウェアへのパッチ適用を優先することは重要です。これにより、組織をセキュリティ侵害から保護し、業界基準への準拠を維持し、法的責任を回避し、全体的なセキュリティ態勢を向上させることができます。これには、組織内で使用されるすべてのソフトウェアのセキュリティパッチを定期的に確認・適用するパッチ管理プログラムの導入が含まれる場合があります。また、パッチが迅速かつ一貫して適用されるよう、ITチームなどの他部門と連携することも必要です。さらに、組織内で使用されるすべてのソフトウェアのセキュリティパッチを定期的に確認・適用するプログラムの監視プログラムの導入が含まれる場合があります。また、ITチームなどの他部門と連携し、パッチが迅速かつ一貫して適用されるよう確保することも必要です。さらに、セキュリティ環境を監視し、最新の脅威や脆弱性に関する情報を常に把握することで、潜在的なリスクが発生した際に迅速に特定・対処することも求められます。
要約すると、脆弱なソフトウェアへのパッチ適用が重要な理由は以下の通りです:
- セキュリティ侵害からの保護:脆弱なソフトウェアにパッチを適用することで、組織はデータ窃盗、ランサムウェア攻撃、その他のサイバー犯罪といったセキュリティ侵害から身を守ることができます。例えば2017年には、WannaCryランサムウェア攻撃がMicrosoft Windowsオペレーティングシステムの脆弱性を悪用し、データを暗号化して身代金の支払いを要求しました。
- 業界基準への準拠維持のため: 多くの業界では、脆弱なソフトウェアを適時にパッチ適用することを求める特定のコンプライアンス基準が存在します。例えば、ペイメントカード業界データセキュリティ基準(PCI DSS)では、セキュリティ侵害を防ぐため、セキュリティパッチをリリース後30日以内に適用することが義務付けられています。
- 法的責任を回避するため: 脆弱なソフトウェアへのパッチ適用を怠った場合、その結果発生したセキュリティ侵害について法的責任を問われる可能性があります。例えば2018年、米国裁判所はターゲット社が決済カードシステムの既知の脆弱性へのパッチ適用を怠ったため、データ侵害の責任があると判断しました。
- セキュリティ態勢全体の強化: 脆弱なソフトウェアにパッチを適用することで、組織は潜在的な攻撃経路を減らし、侵害リスクを低減することで、セキュリティ態勢全体を強化できます。例えば、Adobe Flash、Microsoft Windows、Apache Web Serverなどのソフトウェアにパッチを適用することで、バッファオーバーフロー、ヒープオーバーフロー、リモートコード実行攻撃など、幅広いセキュリティ脆弱性から組織を保護できます。
脆弱性の優先順位付け方法とは?
共通脆弱性情報(CVE)の年間報告件数は変動するものの、近年増加傾向にあります。2020年には24,000件以上のCVEが報告され、過去数年と比べて大幅な増加となりました。接続デバイスの数やオンラインで共有される機密データの量が増加するにつれ、この傾向は今後も続くと予想されます。
共通脆弱性評価システム(CVSS)は、脆弱性の深刻度を測定するために広く使用されている尺度です。この尺度では、攻撃の種類、悪用成功の可能性、機密性・完全性・可用性への影響など、複数の指標を用いて脆弱性の潜在的影響を判定します。
CVSSスケールは0から10までのスコアを使用し、0が最も深刻度が低く、10が最も深刻度が高いことを示します。たとえば、スコアが 0.1 の脆弱性は深刻度が低いとみなされ、スコアが 9.0 の脆弱性は深刻度が非常に高いとみなされます。CVSS スコアは、脆弱性の潜在的な影響に基づいて、組織がパッチ適用やリスク軽減の取り組みの優先順位付けを行うのに役立ちます。
最も深刻とされる CVSS 10 の脆弱性の例としては、以下のようなものがあります。
- OpenSSL の Heartbleed 脆弱性により、攻撃者は脆弱なサーバーからパスワードや秘密鍵などの機密データにアクセスできます。
- WannaCryランサムウェア攻撃は、Microsoft Windowsの脆弱性を悪用してファイルを暗号化し、身代金の支払いを要求しました。
- BlueKeepMicrosoft Windows の
- BlueKeep 脆弱性により、攻撃者は脆弱なシステム上で任意のコードをリモート実行できます。
- Bash の Shellshock 脆弱性により、攻撃者は任意のコードを実行し、システムへの不正アクセスを得ることができます。
- Microsoft Windows の EternalBlue 脆弱性により、攻撃者はネットワーク上で任意のコードをリモート実行し、マルウェアを拡散させることが可能です。
ゼロデイ脆弱性とは?
ゼロデイ脆弱性とは、まだ発見されていない、あるいは公に開示されていないセキュリティ上の欠陥を指します。つまり、攻撃者は、その脆弱性が修正される前に悪用することができ、システムやネットワークへの不正アクセスが可能になります。ゼロデイ脆弱性は、被害者に知られていないため、防御が困難であり、特に危険です。

マルウェアは脅威か脆弱性か?
マルウェアは脆弱性ではなく脅威の一種です。脆弱性とは、攻撃者が不正アクセスや損害を与えるために悪用できるシステムやネットワークの弱点です。一方、マルウェアはシステムやネットワークを侵害するために脆弱性を悪用するよう設計された悪意のあるソフトウェアです。つまり、マルウェアはシステムやネットワークへのアクセスを得るために脆弱性を利用することはできますが、それ自体が脆弱性ではありません。
マルウェアと脆弱性のどちらがより危険かは、具体的な状況によって異なるため一概には言えません。脆弱性がなければ、マルウェアはシステムやネットワークを侵害できません。一方で、マルウェアがなければ、攻撃者は脆弱性を悪用してアクセスを得ることもできません。潜在的な影響という点では、マルウェアはデータの窃取、ファイルの暗号化、業務の妨害など、システムやネットワークに重大な損害を与える可能性があります。一方、脆弱性はシステムやネットワークに直接的な影響を与えない場合もありますが、攻撃を受けやすくする可能性があります。全体として、マルウェアと脆弱性は深刻なサイバーセキュリティ脅威であり、包括的なセキュリティ戦略の一環として対処すべきです。
結論
ソフトウェアの脆弱性リスクは、定期的なパッチ適用や更新、安全な開発手法の導入によって軽減できます。しかし、攻撃者が絶えず新たな脆弱性を発見し悪用するため、リスクが完全に排除されることはまずありません。組織は脆弱性を継続的に監視し、効果的な軽減策を実施してリスクを最小限に抑えることが重要です。
セキュリティ脆弱性に関するよくある質問
セキュリティ脆弱性とは、ソフトウェア、ハードウェア、またはプロセスに存在する欠陥や弱点であり、攻撃者が不正アクセスや損害を与えるために悪用する可能性があります。コーディング上のバグ、設定ミス、パッチの適用漏れなどが該当します。脆弱性を放置すると、マルウェア侵入、データ窃取、サービス妨害の経路となるため、迅速な特定と修正がシステムの安全性と信頼性向上につながります。
バッファオーバーフローは、メモリバッファをオーバーランさせることで攻撃者が任意のコードを実行することを可能にします。SQLインジェクションやコマンドインジェクションなどのインジェクション脆弱性は、信頼できない入力によってクエリやコマンドが改変される際に発生します。クロスサイトスクリプティング(XSS)は、攻撃者がユーザーのブラウザでスクリプトを実行することを可能にします。
アクセス制御の不備は権限昇格を許します。デフォルトの認証情報や開いたポートなどの設定ミスも上位にランクインします。これらを合わせると、多くの侵害やデータ漏洩の原因となっています。
脆弱性はCVSSなどのシステムでスコア化されます。CVSSは、悪用難易度、機密性・完全性・可用性への影響度、ユーザー操作の必要性に基づき、0~10の尺度で深刻度を評価します。その後、各チームは自社の環境(資産価値、悪用可能性、ビジネスへの影響)を考慮し、どの修正が最も重要かをランク付けします。これにより、高価値システムにおける重大な脆弱性が最優先で修正されます。
コードレビュー、自動スキャナー、欠陥を調査するペネトレーションテストを通じて発見されます。バグ報奨金プログラムでは、外部研究者に稼働システム内の脆弱性探索を依頼します。セキュリティ研究者やベンダーも新たなバグを発見した際に勧告を発表します。インシデント調査によって、修正が必要なこれまで気づかれていなかった弱点が明らかになることもあります。
責任ある開示は、ベンダーまたはメンテナへの非公開通知と修正スケジュール合意から始まります。ベンダーは公開前にパッチを開発・テストします。調整された脆弱性開示とは、アドバイザリとパッチを同時に共有し、詳細が公開される前にユーザーが更新できるようにすることです。これにより攻撃者が問題を悪用できる期間が短縮されます。
主要指標には、発見から展開までの平均時間(平均パッチ適用時間)が含まれます。システム全体のパッチ適用率と未解決の高深刻度修正件数を追跡してください。再発脆弱性の発生率を測定し、プロセスの不備を特定します。脅威フィードにおけるエクスプロイト動向を監視し、未修正の問題が活発な攻撃に晒されていないか確認し、優先順位付けの指針とすること。

