2019.04.05
企業が作業効率や顧客からの信頼度を上げるためには、ネットワークなどのセキュリティ対策が必要不可欠となっています。ここをしっかりと対策しておかないと、顧客情報が漏えいするなど、さまざまなトラブルが起こりかねません。対策をするにあたって、システムの脆弱性にどんなリスクがあり、どんな対策が必要とされるかを知ることが重要なのです。今回はその点についてくわしく説明します。
脆弱性(バルネラビリティ (Vulnerability)はセキュリティホールと呼ばれることもあります。コンピューターのOSやソフトウェアにはプログラムの不具合や設計上のミスが含まれているケースが少なくありません。脆弱性とは、そのようなプログラムの弱点を意味します。そして、不正アクセスやコンピュータウィルス(ワーム)といった悪意のある攻撃は、脆弱性を利用して行われるケースが多いのです。
MicrosoftやAppleなどOSを提供するIT企業は脆弱性を解決するためのアップデートを頻繁に行っています。しかし、アップデートの前に新たに発見された脆弱性に関する情報だけを公開する場合もあり、そのときにはその脆弱性を狙った攻撃方法が、悪意のある第三者によって生み出されることもあるのです。近年は、短期間で新たな攻撃方法が普及してしまう傾向があります。つまり、セキュリティ対策が間に合わないことによって、コンピューターウイルスに感染したり、公開サーバーが攻撃されて大きな被害が出たりするリスクが高くなっているのです。加えて、顧客や取引先企業といった範囲にまで被害が及ぶケースも増大しています。
そうなると、企業の経営者やIT担当者が脆弱性の対策を行わずに放置していたことや、対策がされていない状態で悪用が可能な情報を公開していたことが問題とされるでしょう。脆弱性に完璧に対策を行うのは難しい中で、新たな脆弱性が次々と発見されているのです。そこで、企業の経営者やセキュリティ対策の責任者は、脆弱性に関する情報の共有と連携を行って、適切な対処を実行することが求められています。
脆弱性が発生する原因としては、システム設計時の予測不足やプログラム上の設計ミスといった要因を挙げることができます。たとえば、システムを設計するときに、想定外の入力に対する予測が不十分な場合があるのです。OSを含め、ソフトウェアを開発する過程では、外部から入力されるデータのチェックテストは必ず行われます。その際、ソフトウェアに脆弱性があることを前提として完璧にチェックを行えば脆弱性を皆無にできるという考え方もありますが、それは実際には不可能なのです。それは、脆弱性を悪用して攻撃をしかけてくる者が新しい攻撃方法を生み出すペースが速いため、システムの運用中に予想していなかった脆弱性が発見されるケースもあるからです。
さらに、脆弱性が発生するのはシステムの局所においてだけではないのです。設計から実装、運用というシステム開発における上流工程から下流工程にかけて脆弱性が発生するケースもあります。特に、上流工程で発生した脆弱性の場合、下流工程でそれをフォローすることは困難です。よって、システムを開発する際は、上流工程の段階から脆弱性対策を十分に考慮する必要があります。
脆弱性はセキュリティホールと同意義で使われることも多い用語ですが、両者は厳密には異なります。セキュリティホールとは、プログラムの設計やコーディングのミスが原因となって、ソフトウェアに不具合(バグ)が生じることに限定して使用される用語です。セキュリティホールによって想定できるトラブルの例を挙げてみましょう。たとえば、本来はできないはずの操作ができてしまう、あるいは、閲覧されてはならない機密情報が閲覧が可能になってしまうというトラブルが発生するリスクがあります。
それに対し、脆弱性はソフトウェア上の単純な欠陥に留まりません。たとえ、仕様通りに作られたプログラムであっても、外部からの攻撃に弱い部分があれば脆弱性に含まれます。たとえば、正常な機能として設計・開発された機能であっても、予想外に外部から悪用されてしまう場合も脆弱性と呼ばれるのです。サイバー攻撃に対する危機感が薄く、十分な脆弱性対策を行わないままでいると、いざ、サイバーテロリストのターゲットになったときには重大な損失を被るケースがあります。次に、脆弱性を放置しているとどのようなリスクがあるかについて見ていきましょう。
脆弱性のあるプログラムは、専用のソフトで簡単に発見できます。サイバー攻撃者は、企業のホームページなどが脆弱性を放置していることに目をつけてサイバー攻撃のターゲットを選んでいるのです。まず、外部から内部ネットワークへの侵入を試みるケースが多くあります。それから、内部からこっそりとファイルやコードを改ざんすることによって、重要な機密情報を大量に抜き取っていくのです。
たとえば、使用しているビジネスソフトウェアに脆弱性がある場合、サイバー攻撃者はそこを悪用するプログラムを組み込んだ添付ファイルを送信してくるケースが頻発しています。普通の添付ファイルにしか見えませんが、うっかり開いてしまうと悪性プログラムが実行されて、内部ネットワークに侵入されてしまうのです。それ以外にもサイバー攻撃者はさまざまな脆弱性を利用し、ありとあらゆるルートで内部ネットワークへ侵入しようとします。
内部ネットワークに侵入するまでもなく、企業が公開しているウェブサイト上でデータが盗まれてしまう場合もあります。ウェブサイトにSQLインジェクションという脆弱性があると、ウェブサイト上の入力フォームに不正な文字列を挿入することで、不正にデータベースにアクセスすることができるのです。結果として、データベース内の個人情報が盗まれます。
また、OpenSSLで発生した「Heart Bleed(ハートブリード)」という脆弱性を悪用されると、メモリ内に格納されている暗号化のための共通鍵が盗まれるケースもあるのです。すると、サーバーと顧客の間でやりとりされたデータのすべてを盗聴できます。そのデータ内に個人情報が含まれていれば、深刻な個人情報漏えいにつながるでしょう。
それから、「クロスサイト・スクリプティング」というソフトウェア脆弱性を悪用すれば、サイバー攻撃者は正規ユーザーに成りすまして会員ページに不正ログインを行うことができます。悪用の方法としては、脆弱性のあるウェブページに不正なスクリプトを埋め込み、ユーザーがウェブページを開いたときに実行されるようにします。そして、不正スクリプトが実行されると、運営者が意図しないウェブページに飛ばされてしまうことがあるのです。また、アカウントIDやパスワードも盗まれてしまいます。ユーザーがクレジットカード情報を登録しているECサイトなどの場合、その情報を不正利用して多額の買い物をすることも可能になるのです。
脆弱性への対策が不十分だと、マルウェアに感染するリスクも大きくなります。マルウェアとは、不正に有害な動作を行う目的で作られた悪意のあるソフトウェアや悪質なコードを総称する用語です。マルウェアの種類にはウイルスやワーム、トロイの木馬やスパイウェア、キーロガーやバックドア、ボットなどがあります。
マルウェアに感染すると、パソコンが起動できなくなったり、システムの動作にトラブルが生じたりするのです。また、感染したコンピューター内部のファイルを消したり書き換えたりすることもあれば、外部ネットワークにさらすこともあります。この点において、社内業務に支障をきたすばかりでなく、重要な個人情報を流出させてしまうリスクがあるのです。また、第三者にサイバー攻撃を行う際の踏み台にされるケースもあり、そうなると、自らも被害者でありながら、第三者にとっては加害者となってしまうおそれがあります。
脆弱性を放置したまま企業のウェブサイトを公開していると、内容が改ざんされるおそれがあります。すると、そのウェブサイトを閲覧した顧客などのパソコンもマルウェアに感染するおそれがあるのです。さらに、そのパソコンで別のウェブサイトを運営している場合、マルウェア感染は連鎖して拡大していきます。マルウェア感染によって、パソコンを使用する際の不具合から個人情報の漏えい、さらには金銭的な被害までも生じる可能性があるため、深刻な問題です。特に、FTPアカウントが盗まれることによって企業のウェブサイトが改ざんされるケースとその被害が増えています。
FTPとは「ファイル・トランスファー・プロトコル(File Transfer Protocol)」の略で、「ファイル転送プロトコル」とも呼ばれるものです。FTPによって、目の前にあるパソコンから離れた場所にあるパソコンにファイルを送信、あるいは、遠くにあるパソコンからファイルをコピーといった作業が可能になります。FTPは主にウェブページを公開する作業で使用されるものです。具体的には、作成したHTMLなどのファイルをサーバーにアップロードしたり、変更した内容を反映させてウェブページを更新したりする際にFTPを使用します。そのため、FTPアカウントが盗まれると悪意のあるプログラムが仕込まれたウェブページが企業のウェブサイトで公開されてしまうのです。
脆弱性対策を始めるにあたり、セキュリティに関する情報を集める必要があるでしょう。ここでは、覚えておきたいセキュリティ用語や指標について解説します。
まず、「CVE」とは「共通脆弱性識別子(Common Vulnerabilities and Exposures)」の略です。CVEは脆弱性を一意に識別する番号で、脆弱性検査ツールや脆弱性対策情報提供サービスの多くで利用されています。1999年にアメリカのMITRE社が提案したもので、米国政府が推進する情報セキュリティプロジェクトにも用いられているのです。MITRE社はIBMなど80以上の主要な脆弱性情報サイトと連携し、脆弱性情報の収集と重複しないナンバリングに努めています。MITRE社が定める機能要件を満たしてから申請するとCVE互換認定制度で認定を受けることができ、CVEのロゴを企業のウェブサイトなどに使用できるなどのメリットがあります。
「CWE」とは「共通脆弱性タイプ一覧(Common Weakness Enumeration)」の略です。ソフトウェアにある脆弱性の種類を識別するための基準であり、国際的な基準となることを目指しています。
「CVSS」は「共通脆弱性評価システム(Common Vulnerability Scoring System)」の略です。CVSSを利用すると共通した基準下で脆弱性の深刻度を定量的に比較できるため、脆弱性の深刻度を評価するための指標となっています。CVSSの評価基準は3種類です。
まず、脆弱性そのものの特徴を評価する「基本評価基準」では、情報システムの機密性・完全性・可用性に対してネットワークから攻撃が可能かどうかという基準で評価します。次に、「現状評価基準」は、現在、どれほどの深刻度が脆弱性にあるかを攻撃コードの出現有無や対策情報が利用できるかという基準で評価するものです。「環境評価基準」では、サイバー攻撃を受けた場合の最終的な脆弱性の深刻度を、二次的な被害の大きさや組織での対象ソフトウェアの使用状況という基準で評価します。
脆弱性に関する情報は脆弱性データベースやニュースサイト、注意喚起サイトや製品ベンダーなどから多数が公表されています。そこで、企業の経営者やIT担当者は、膨大な情報から自社に関係の深い情報を絞り込み、自社組織内に影響を及ぼす度合いを早めに判断することが重要なのです。そのための方法としては、参考にするサイトを選別して情報を収集するのも良いでしょう。または、IPA(情報処理推進機構) が公開している脆弱性対策支援ツールやサービスを利用するといったものが挙げられます。
脆弱性に関する情報で自社に関連するものに絞り込んだら、次はその情報をもとに、脆弱性の深刻度を確認する必要があります。そこで目安となる基準がCWEやCVSSです。脆弱性の特徴や自社システムへの攻撃状況、影響度などを把握して、現在のセキュリティの状態における危険度を確認します。
さらに、収集した情報や未対策の脆弱性の危険度をもとにして、もしもサイバー攻撃を受けた場合、自社組織のシステムにどれほどの被害が及ぶかの可能性を分析する必要があります。分析する際にもCVSSを用いて評価を行うのが良い方法です。脆弱性の危険度が低いと考えられる場合でも、企業が公開しているウェブサイトなどのサービスを利用した人に被害が及ぶおそれはあります。万が一、そのような事態になれば、被害の内容自体は小さいものであっても企業の信頼性を損ないかねません。ですから、いずれにせよ、脆弱性への対策はしっかりと行うべきでしょう。
システムには脆弱性がつきものであり、運用を始めてしばらくたってから発見される脆弱性も珍しくありません。そして、脆弱性を悪用して企業を攻撃するサイバーテロリストは常にターゲットを探しており、新しい攻撃方法を生み出します。ですから、脆弱性の対策には終わりがありません。脆弱性に起因する被害をできるだけ少なく抑えるために、経営者やIT担当者は努力を続けなければならないのです。脆弱性を放置することは企業にとってマイナスにしかなりませんから、脆弱性に関する理解と知識を深めつつ、効果的な対策を講じる必要があります。