サイバー攻撃の原因となる「脆弱性」を理解する

Share

情報漏えいなどの被害をもたらすサイバー攻撃の多くは、「脆弱性」を悪用して行われます。メディアを賑わすセキュリティ事故の相当数が、脆弱性への対応を放置することで引き起こされたものです。脆弱性が生まれる原因、脆弱性情報を収集する方法、脆弱性を見つけるために利用できるチェックツールや診断サービスについての理解を深め、適切な対応を行えるようにしましょう。

「脆弱性」とは?―設定ミスなどによるバグが攻撃に悪用

脆弱性の多くは、「プログラムの設計ミスやコーディングミスなどによるバグ」になります。バグが存在せず正しく動作するプログラムやWebアプリケーションであっても、設計者が想定しないやり方で機能が悪用され、結果としてサイバー攻撃が成立する場合には、その「悪用されうる機能設計」が脆弱性とみなされます。また、システムやサービス全体という視点からは、設定に関して何らかの誤りがあり、そのことによって情報漏えいが起こったりサイバー攻撃が行われたりする可能性がある場合、そうした設定ミスが脆弱性とみなされます。たとえば、ポートの開放に関する設定、権限管理、AWSをはじめとするクラウドサービスの設定ミスがセキュリティ事故を招いた例は枚挙に暇がありません。

「脆弱性」はサイバー攻撃の端緒となる

脆弱性は「きじゃくせい」ではなく「ぜいじゃくせい」と読みます。対応する英語は、「Vulnerability」(「攻撃を受けやすいこと」の意)です。ハードウェア、サーバのOS、ソフトウェア、Webページ、Webアプリケーションなどに脆弱性が存在した場合、それが悪用されることで個人情報や知的財産を盗むようなサイバー攻撃を招くことになります。

脆弱性への対応を怠り社長が辞任に追い込まれたケースも

脆弱性への対応を誤ることは、しばしば事業の運営に甚大な影響をもたらします。典型的な事例をご紹介しましょう。2017年、クレジットカード等の与信に関わるアメリカの大手消費者情報調査会社がサイバー攻撃を受け、自社で保有していた4億件の個人の信用情報の約3分の1にあたる、1億4,000万件もの情報が盗まれました。この攻撃は、Webアプリケーションの開発フレームワークであるApache Strutsの脆弱性を、脆弱性情報とパッチの公開後速やかに修正できなかったことに起因するものです。

攻撃の端緒となった脆弱性に対しては、2017年3月にパッチや対策方法が公開されました。会社側では公開を受けて修正を図ったものの、組織体制の不備等もあいまって修正は不完全な形となり、結果、システムへの不正アクセスを許すことになりました。さらに、攻撃は同年5月から確認されていたにもかかわらず同社が事件を公表したのは9月。4か月もの間事態が公表されなかったことが大きな批判を浴び、CEOなど一部の幹部は辞任に追い込まれ、格付けも引き下げられたのです。脆弱性が引き金となり、このように甚大な影響がもたらされることは少なくないのです。

脆弱性情報はWebサイトでチェックできる

脆弱性は、さまざまなソフトウェアやプラットフォームで日々発見されています。そうした情報は、多くの場合、ソフトウェアやプラットフォーム提供元のWebサイトに掲載されます。少なくとも、自組織で利用している主要なプラットフォームに関しては、緊急性が高い脆弱性が出現していないかどうかを、提供元のWebサイトで定期的にチェックするとよいでしょう。

また、一般社団法人JPCERTコーディネーションセンターとIPA(独立行政法人情報処理推進機構)では、公表された脆弱性情報を収集して公開するサービス「JVN(Japan Vulnerability Notes)」を共同運営しています。日本で利用されている大半のソフトウェアの脆弱性の情報は、このサイトでチェックできます。

さらに、特定の脆弱性によってどのような実害が発生するかは、脆弱性を発見したセキュリティ企業がブログなどで情報を公開している場合もあります。追加で調べてみてもいいでしょう。

日頃からできる脆弱性対策

衣服等の破れを補修する「継ぎ当て」や傷口に貼る「絆創膏」のことを英語で「パッチ(patch)」と言いますが、脆弱性を修正するプログラムも「パッチ」と呼ばれます。修正プログラムを適用することは「パッチをあてる」と言われたりします。脆弱性が発見されたら速やかにパッチをあてるのが原則ですが、下記のようにいくつか留意すべき事項がありますので、念頭に置いておきましょう。

・パッチをあてることにより、システムに影響が及ぶ場合があります。適用にあたっては事前に調査を行い、必要に応じて十分な検証を実施してください。なお、自組織で開発したシステムに関しては、必ずテスト環境を用意し、パッチ適用による整合性チェックを行ってください。

・自組織のネットワークやサーバでどんなソフトウェアが動いているのか、定期的に棚卸しを行って把握しておくことも重要です。棚卸しの過程で不要なサーバや機器などが発見されたら、将来のリスクの種を取り除く上で削除可能かどうかを確認してください。なお、棚卸しの際、ソフトウェアのバージョン台帳のようなリストを作成しておけば、新しい脆弱性が報告されたときに、自組織のシステムが該当するのかをすぐにチェックできます。

・ソフトウェアは定期的にアップデートが行われます。アップデートされた最新バージョンでは既知の脆弱性や不具合が修正されていますので、後回しにせずに更新を行うようにしてください。

・自組織で開発したソフトウェアやWebアプリケーション等の場合は、サービスが稼働する前の上流工程(開発段階)から、セキュアプログラミングやDevSecOpsなど、そもそも脆弱性を作り込まない体制を構築することが有効です。

・テレワーク化が急速に進む今日では、以上の留意事項に加え、クライアントサイドでのパッチ適用が適切に行われているかをチェックする体制を構築することも重要です。また、シャドーITの状況把握も厳格に実施する必要があります。「IT部門が知らないサービスを勝手に利用され、結果として脆弱性の有無について未検証のクライアントソフトやブラウザプラグインが使われていた」という事態は防がねばなりません。

「脆弱性が多い」と言われるソフトウェアの傾向

脆弱性が数多く報告されているのは、一体どんなソフトウェアでしょう。ひとつ共通することは「ユーザが多い」ということです。たとえば、皆さんがこのサイトをご覧になっているWebブラウザ、そのWebブラウザが動作するMicrosoft WindowsなどのOS、ビジネスでよく使われるPDFファイルを扱うAdobe Acrobat、WebサーバソフトのApache、データベースアプリケーションのMySQLなどです。いずれも、全世界に膨大な数のユーザを持つソフトウェアであり、規模のインパクトという点から、攻撃者にとって極めて魅力的、いわば人気があるのです。かつ、このようなソフトウェアでは、開発元において、脆弱性を早期に発見し、修正プログラムの公開、所定機関への報告を迅速に行う必要性が高いことから、報告件数が当然ながら多くなる傾向がみられます。

わかりやすい例としては、オンライン会議ソフトのZoomがあります。Zoomでは、2020年になって脆弱性が次々と発見されていますが、そこには、新型コロナウイルス対策の一環でテレワーク化が進み、Zoom利用者が爆発的に増えたという背景があります。攻撃者の格好のターゲットになったことと、Zoomの脆弱性の増加は、連動した現象なのです。

ここまでの説明でお気づきかもしれませんが、「脆弱性が多く報告されている」ことは必ずしも「品質が悪い」ことを意味するのではありません。脆弱性が存在してもそのことが報告・公表されていなければ、「脆弱性がある」とは認知されないわけです。

ツールを使って脆弱性を見つける

脆弱性を発見するためのソフトウェアは「チェックツール」「スキャンツール」「スキャナ」などと呼ばれます。以下に、代表的なものをご紹介しましょう。有償、無償のさまざまなツールが提供されていますので、機能や特徴を知り、ニーズに合致するものを試してみてはいかがでしょうか。

  有償ツール 無償ツール
Webアプリケーション向けAppScan、Burp Suite、WebInspect など OWASP ZAP など
サーバ、ネットワーク向け Nessus(一部無償)、nmap など Nirvana改弐、Vuls など

「脆弱性診断」サービスで自組織のソフトウェアの脆弱性を見つける

上記でご紹介したツールを使えば、脆弱性のチェックを自組織で行うことが可能です。しかし、前述の通り、「脆弱性が存在するのに報告されていない」ために情報がツールに実装されていないソフトウェアも数多くあります。また、一般に広く利用されているソフトウェアであれば次々に脆弱性が発見、公開されますが、自組織で開発したWebアプリケーションの場合は、外部に頼れる脆弱性ソースはありません。さらに、実施にあたっては相応の技術的知識が求められます。そこで検討したいのが脆弱性診断サービスの利用です。

脆弱性診断サービスでは、システムを構成する多様なソフトウェアやWebアプリケーション、API、スマホアプリケーション、ネットワークなどに関し、広範な知識を持つ担当者が、セキュリティ上のベストプラクティス、システム独自の要件などを総合的に分析し、対象システムの脆弱性を評価します。組織からの依頼に応じて、「自組織で気付けていない脆弱性がないかどうか」を調べる目的のほか、「脆弱性に対して施した対策が充分に機能しているか」を検証する目的で実施することもできます。

脆弱性との共存(?)を図るケースもある

最後に、診断で発見された脆弱性にパッチをあてることができないときの対処法をご紹介しましょう。

まず、「パッチを適用することで、現在稼働している重要なアプリケーションに不具合が起こることが事前検証の結果判明した」場合です。このようなケースでは、システムの安定稼働を優先し、あえてパッチをあてずに、その脆弱性への攻撃をブロックするセキュリティ機器を導入することで攻撃を防ぎます。セキュリティ機器によって「仮想的なパッチをあてる」という対策になるため、「バーチャルパッチ」とも呼ばれます。

また、脆弱性が発見されたのがミッションクリティカルなシステムではなく、ほとんど使われていない業務アプリであった場合は、脆弱性を修正するのではなく、そのアプリ自体の使用を停止することを検討できるでしょう。これは、運用によってリスクを回避する方法といえます。

なお、前項でご紹介した脆弱性診断サービスの利用は、脆弱性に対して以上のような回避策をとる場合にも、メリットがあるといえます。発見された脆弱性について、深刻度、悪用される危険性、システム全体への影響度といった、専門サービスならではのより詳細な分析結果にもとづいて、対処の意思決定を行えるためです。

まとめ

・サイバー攻撃の端緒となる脆弱性はプログラムの設計ミスなどによって生まれます。
・海外では脆弱性への対応を怠ったことで発生した情報漏えい事故で社長が辞任に追い込まれた事例もあります。
・脆弱性情報はベンダのWebサイトやJVNなどで公開されています。
・自組織のネットワークやソフトウェアなどの棚卸しを行い、それぞれのバージョンを把握しましょう。
・利用者が多いソフトウェアほど脆弱性が発見されます。必ずしも「脆弱性の報告数が多い=品質が低い」というわけではありません。
・脆弱性診断サービスは、自組織で開発したWebアプリケーションなどの脆弱性を発見するのに有効です。

関連情報

● 脆弱性診断の必要性とは?ツールなど調査手法と進め方

● 2019年下半期 カテゴリ別脆弱性検出状況


年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
サービスに関する疑問や質問はこちらからお気軽にお問合せください。

Share