本文へジャンプします。

TOP

用語集

脆弱性とは

2020年1月14日


脆弱性とは

プログラムの不具合や設計上のミスなどによって、ソフトウェア上に発生する情報セキュリティ上の欠陥のことを「脆弱性」や「セキュリティホール」と呼びます。脆弱性を放置したままでいると、システムが不正アクセスを受けたり、マルウェアに感染したりといった危険性があるため、早急に対処しなければなりません。本記事では、脆弱性が発生する原因とその対策について解説します。

本記事をご覧いただいた方向けに、おすすめの記事をまとめました。こちらもあわせてご確認ください。

脅威と脆弱性の違い

情報システムや組織に対して起こりうる、セキュリティ事故の潜在的な要因を「脅威」と呼びます。具体的にはシステムへの不正侵入・マルウェアへの感染・通信の盗聴などが脅威に該当します。

対して「脆弱性(セキュリティホール)」とは、システム設計時の考慮漏れやプログラムのコーディングミスなどによるソフトウェア上の欠陥を指す言葉です。脅威は、ソフトウェア上の脆弱性を利用して、システムにさまざまな攻撃を行います。実際に攻撃が行われてしまうと、機密情報の改竄や流出といった重篤なセキュリティ事故につながる恐れもあるため、組織やビジネスを守るためにも、脆弱性には迅速かつ的確に対策する必要があります。

脆弱性が発生する原因

脆弱性が発生する原因として、最もよくあるのがプログラミング時のミスです。例えば、入力されたデータの検証が不十分で不正なデータを受け付けてしまうようなケースがこれに該当します。データ部分に不正な命令を埋め込むことで、データベースを不正に操作してデータを抜き出す「SQLインジェクション攻撃」やOS上で不正にプログラムを起動する「コマンドインジェクション攻撃」は、ありふれた攻撃の1つです。

現在のソフトウェアは非常に大きく複雑になっているため、思いがけない部分のミスが脆弱性となるケースもあるでしょう。プログラムは人間が作成する以上、どうしてもミスをなくすことはできません。そのため、「脆弱性となりやすいパターン」については、事前にしっかりテストを行い、万が一、脆弱性が発見された場合は速やかに修正することが大切です。

システム設計時の想定漏れも、脆弱性を発生させる原因の1つです。システム設計時に想定していなかった操作をユーザーが行うことで、ソフトウェアが予期せぬ挙動を行い、結果的にその挙動を利用した攻撃が成立してしまうということもよくあります。

こうした脆弱性は発見され次第、修正プログラムが提供されるのが一般的です。しかし、セキュリティに関する情報は拡散される速度が早いため、修正プログラムが配布されるより前に具体的な攻撃方法が世間に知れ渡ってしまい、実際に攻撃が行われてしまうこともあります。このような修正プログラムの提供前に行われる攻撃を「ゼロデイ攻撃」と呼びます。ゼロデイ攻撃は脆弱性の修正という根本対策が行えないタイミングで行われるため、システムにとって非常に大きな脅威となります。

脆弱性への対策

運用中のシステムに脆弱性が発見された場合は、どのように対処すべきでしょうか? 脆弱性はソフトウェア上の不具合によって発生する問題ですから、ソフトウェアを対策済みのバージョンへアップデートすることが根本的な対策となります。

脆弱性対策を行うためには、まず正しい情報を把握しなければなりません。脆弱性が発見されると、SNSやWebメディアなどで情報を目にする機会も多いでしょう。しかし、そのような二次情報だけを頼りに対策を行ってはいけません。必ずソフトウェアを提供しているベンダーのアナウンスやアップデート情報といった一次情報をチェックして、脆弱性について正しく理解し、ソフトウェアの更新情報を確認することを心掛けてください。脆弱性についての情報をまとめて発信しているサイトも参考になります。具体的には、JPCERT/CC(一般社団法人 JPCERTコーディネーションセンター)IPA(独立行政法人 情報処理推進機構)が公開しているセキュリティ情報などです。

発見された脆弱性は、CVE(Common Vulnerabilities and Exposures、共通脆弱性識別子とも)というIDで識別されます。CVEは、非営利団体のMITRE社が脆弱性の採番に利用している識別子で広く一般的に利用されています。

CVEは脆弱性ごとに採番される固有のIDで、「CVE-西暦-通し番号」というフォーマットになっています。脆弱性ごとに固有の番号が採番されるため、IDを参照することでどの脆弱性に関する情報なのかを一意に特定できます。また、CVEは多くの検査ツールや情報提供サービスでも利用されているため、複数の情報ソースを参照した際にも対象の脆弱性を取り違えることがありません。ソフトウェアのアップデート時には「CVE-2019-xxxxに対応」といった形で、どのような脆弱性を修正したのかアナウンスされることも多いため、対象とする脆弱性のCVE-IDを意識しておくことは大切です。

前述のゼロデイ攻撃のように、脆弱性の情報はすぐに知れ渡ってしまいます。実際に攻撃を行うコードが公開されることも多いため、脆弱性に対する修正プログラムが提供されたら、可能な限り速やかにソフトウェアのアップデートを行うようにしたほうがよいでしょう。

脆弱性診断サービスなら専門家の支援を受けられるので安心

世間で広く利用されているソフトウェアであれば、脆弱性情報が公開された上で提供元による修正プログラムの配布が期待できるため、情報の収集さえ怠らなければ、脆弱性に対応するのはそれほど難しいことではありません。対して、自社で開発した独自のアプリケーションやシステムについては、自分たちで脆弱性が存在しないか確認し、対応をしなければなりません。しかし、システムに潜む脆弱性を見つけるには、セキュリティに関する高い専門知識が必要となります。

そのような場合に利用したいのが、「脆弱性診断サービス」です。脆弱性診断サービスは、最新のサイバー攻撃を熟知した専門のセキュリティエンジニアが攻撃者の視点で情報システムの脆弱性を徹底的に調査し、システムの潜在的な問題点を洗い出してくれるサービスです。

ニフクラでは「脆弱性診断サービス Powered by GMOイエラエ」を提供しています。これは、ニフクラ上に構築されたアプリケーションやシステム、ネットワークに対して、GMOサイバーセキュリティ byイエラエ株式会社のセキュリティエンジニアが脆弱性を診断するサービスです。SQLインジェクションやOSコマンドインジェクションといったアプリケーションの基本的な脆弱性から、OSやネットワークの脆弱性まで、専門のセキュリティエンジニアが幅広く診断し、結果をレポートとして提出します。

インターネットに接続されているシステムは、常にさまざまな脅威に晒されており、セキュリティインシデントの発生は決して他人事ではありません。侵入・改竄・情報漏洩といった重大なセキュリティインシデントを未然に防ぐためにも、情報システムの安全性を確認・評価し、脆弱性にしっかりと対応することが大切です。

  • このエントリーをはてなブックマークに追加