セキュリティのことを知ろうとすると「脆弱性」という言葉をよく聞きます。しかし、本来の意味を知っている人は少ないでしょう。何となく「セキュリティの欠陥」という感覚で捉えている方が多いようです。
システムの脆弱性には様々な種類があり、受ける被害も異なります。
この記事では、脆弱性とは何か、脆弱性を狙う攻撃の種類と対策方法について解説します。
脆弱性とは
「悪意ある者に攻撃されやすいセキュリティ上の欠点」のことです。
脆弱性(vulnerability/バルネラビリティ)という言葉には、一般的に「キズつきやすい性質」「もろくて弱い」といった意味があります。
コンピューター・ネットワークの分野では、主に「ソフトウェアのセキュリティ脆弱性」のことです。セキュリティホールとも呼ばれます。
では、ソフトウェアの脆弱性(以下、脆弱性)とは何でしょうか?
この定義は人によって異なります。そのため、ここでは「セキュリティの問題を発生させる、ソフトウェアの設計上の欠陥」と定義します。ソフトウェアの設計ミス・実装ミスにより生じるものです。
脆弱性があると、本来はできないはずの操作ができたり、第三者に見えてはならない情報が見えてしまったりするなどの不具合がでます。すると開発者の予想を超えた使われ方をされてしまい、悪意のある第三者がウイルス感染や不正アクセスを実行できてしまいます。
脆弱性ができる原因は?
- システム設計時の予測不足
- プログラムのコーディングやシステムの設定ミス
- 故意に仕掛けられたもの など
また、「管理体制の不備」も脆弱性となってしまいます。脆弱性はソフトウェアの欠陥だけでなく、機密情報の管理方法など、人や社内の管理体制に不備があることも脆弱性といいます。
これはソフトウェアと区別するために、「人為的脆弱性」と呼ぶこともあります。
脆弱性を狙ったサイバー攻撃による被害
脆弱性があると以下のような攻撃の被害を受ける可能性が高くなります。
- ウイルス感染
- 情報漏えい
- パソコンの乗っ取り、破壊
- 意図しない操作の実行
- 詐欺、金銭被害
- サイト改ざん など
脆弱性のあるソフトウェアは、不正アクセスを受けたり、悪意のあるコードを埋め込まれたりすることで、本来の機能を失ってしまいます。それにより情報流出など、重大な被害を受けてしまいます。
企業が自社サイトやソフトウェアの脆弱性を放置することのリスク
パソコンやソフトウェア、自社サイトの脆弱性の放置は、以下のリスクを伴います。
- お客さまや取引先の個人情報流出
- 自社サイトを改ざんされ、ウイルスをばらまく踏み台に
- 対処に追われ業務が停止
いちど事故が起きると、社会的信用の失墜→収益ダウンにつながります。脆弱性の問題は、企業イメージの低下や資産価値を下げ、倒産に追い込むほどのダメージを与える可能性があります。
脆弱性対策は、企業がおこなうべき重要なセキュリティ対策です。特に自社サイト(コーポレートサイト、会員サイト、通販サイト)に顧客情報を記述するお問い合わせフォームを設置している場合は、サイトのセキュリティ対策をする必要があります。
脆弱性とバグの違いとは?
脆弱性とバグは「第三者が悪用できるかどうか」の部分が異なります。
ソフトウェアの動作を妨害する欠陥のことです。バグがあるとソフトウェアなどが正しく動きませんが、それ以上の問題は起こりません。
脆弱性の最新情報はどこでわかる?
製品やソフトウェアのメーカーの公式サイトだけでなく、IPAなどのセキュリティ情報サイトでは国内で多く使われる主要製品の注意喚起情報がまとめて見られます。
例えば、Windowsの場合はマイクロソフト社のホームページに脆弱性の情報を掲載しています。また、その脆弱性に対する「修正パッチ」やWindows Update情報も掲載しているので、システム管理者は日々、ソフトウェアメーカーのホームページや脆弱性情報を確認してください。
脆弱性の発生状況データ
脆弱性情報の届け出状況
2016年4~6月の「ソフトウェア製品」の届け出件数が、前四半期に比べ大きく増えていることがわかります。
脆弱性の原因
1位 Webアプリケーションの脆弱性:578件
2位 その他実装上の不備:55件
3位 ファイルのパス名、内容のチェックの不備
脆弱性がもたらす影響
1位 任意のスクリプトの実行:438件
2位 任意のコマンドの実行:77件
3位 任意のコードの実行:37件
その他 なりすまし、情報漏えい、データベース不正操作、アクセス制限回避、サービス不能など脆弱性を放置すると、上記のような被害が出る可能性が高いです。
Webサイトの脆弱性の種類と割合
- クロスサイトスクリプティング:56%
- DNS情報の設定の不備:16%
- SQLインジェクション:11%
※統計開始後~届出された脆弱性全8,519件 IPA調べ
上記の脆弱性を攻撃されたことによる被害では、本物サイト上への偽情報の表示(54%)、ドメイン情報の挿入(16%)、データ改ざん・消去(11%)その他となっています。
脆弱性があったソフトウェアの種類
- Webアプリケーションソフト:37%
- Webブラウザ:9%
- ファイル管理ソフト、グループウェア:7%
脆弱性の修正完了状況(JVN公表)
分類 | 2016年4~6月の件数 | 累計 |
---|---|---|
ソフトウェア製品 | 76件 | 1257件 |
Webサイト | 78件 | 6741件 |
合計 | 154件 | 7998件 |
連絡不能の脆弱性への対応は?
脆弱性が報告されているものの連絡が取れない製品開発者について、IPAでは開発者名を公表し、情報提供を求めています。数ヶ月経っても見つからない場合は製品情報や脆弱性情報の公表をJVNがおこない、1つでも多く修正や対応ができるよう努めています。
脆弱性を狙う攻撃の種類
攻撃者はさまざまな手段で、ソフトウェアの脆弱性を悪用しウイルスや不正アクセスを仕掛けようと狙っています。代表的な手口と、その仕組みを見ていきましょう。
バッファオーバーフロー(buffer overflow)
ウイルスを実行させられてしまうため、特に危険な脆弱性のひとつです。「メモリー破壊型」とも呼ばれます。この脆弱性がパソコンにインストールしたソフトウェア(プログラム)にあると、細工されたWebページ・ファイルを読み込むだけでウイルスに感染してしまいます。
読み込まれたデータがバッファ領域をオーバーしてしまうと、バッファ領域外のコードが悪意あるコードで上書きされてしまいます。
データ(文字や数値)を格納するため、メモリ上に確保する領域のこと。バッファに格納される情報は、ファイル・キーボード・ネットワークなどプログラムの外部からの入力で読み込むことがほとんどです。
シェルショック(Shellshock)
ウイルスを実行できる脆弱性は、バッファオーバーフローのほかにもあります。2014年9月に発見された「Shellshock」は、ユーザーの入力コマンドを実行するソフトウェアに脆弱性がある場合、ウイルスとして動作するような命令ができてしまいます。
これはOSとユーザーを仲介するソフトウェアのひとつ「bash(Bourne Again Shell)」で発見された脆弱性です。bashには、ユーザーの入力した命令を解釈して実行するなどの役割があります。
攻撃者は不正なスクリプト(実行コード)をサーバーやパソコンで実行できてしまうため、この脆弱性に関する様々な機器や端末、IoTが狙われます。特に各種LinuxやMac OS Xに影響を及ぼすので、被害が広まる危険があります。
ハートブリード(Heartbleed)
OpenSSL(暗号化通信)の特定バージョンで2014年4月に見つかった脆弱性です。これを悪用されると、システムのメモリ内情報を盗まれ、ユーザーの個人情報や暗号化の重要情報が流出する危険があります。
この場合、被害は脆弱性のあるソフトウェアを使うサーバー管理者だけでなく、一般ユーザーにまで広がってしまいます。
SQLインジェクション(SQL Injection)
Webサーバー上で動作するWebアプリケーションの代表的な脆弱性です。
入力フォームなどに悪意あるSQL文という命令文を送信することで、データベース内の情報を窃取・操作でき、ID/パスワードを知らなくてもログインできてしまいます。
詳しくはこちらで解説しています。
OSコマンドインジェクション(OS command injection)
WebアプリケーションのHTMLフォームなどに悪意あるOSコマンドを入力し、Webサーバー上で実行させる攻撃です。
情報の盗聴やシステム破壊など、OSコマンドで実行できる全ての部分が悪用できてしまいます。
DNSキャッシュポイズニング(DNS cache poisoning)
上記までの脆弱性は、入力データの確認ミスなど設計・実装上の不具合が原因でした。しかし、なかには仕様やプロトコル(通信時の規約)が原因の脆弱性が発生し、悪用されるケースもあります。
そのひとつが、DNSサーバーが影響を受ける「DNSキャッシュポイズニング」攻撃です。
これは、DNSサーバーにドメイン名・IPアドレスのニセ情報をキャッシュさせる攻撃です。ドメイン名に関する情報を所有する、権威DNSサーバーから、ユーザーの問い合わせに答えるキャッシュDNSサーバーへ正しい応答が送信される前に、ニセのIPアドレス情報を送り込みます。
キャッシュDNSサーバーはニセ情報を送信されると、正しいURLをWebブラウザに打ち込んでも、気づかないうちに偽の不正サイトへ誘導されてしまいます。ドメイン乗っ取りや、詐欺などの被害にもつながります。
インターネット上でドメイン名を管理するためのシステム。インターネットを使うときにかならず必要になります。
クロスサイトスクリプティング(cross site scripting:XSS)
動的Webページの脆弱性を突いた攻撃です。WebサイトのHTMLなどに悪意ある(スクリプト)を埋め込み、ユーザーが入力した情報などを盗みます。
詳しくは下記記事で解説しています。
クロスサイトリクエストフォージェリ(Cross Site Request Forgeries:CSRFまたはXSRF)
Webサイトの攻撃方法です。正規ユーザーがログインした状態で、本来の操作であるかのように不正なWebの処理・操作(偽ページへのアクセス、意図しない投稿、商品購入など)を、知らないうちにさせられる攻撃です。
サーバー側で対策をするには、サイト外からのリクエスト受信を拒否するなどの必要があります。
実際に起きた事件
パソコン遠隔操作事件 2012年
CSRF攻撃で犯人に自分のパソコンを遠隔操作させられ、犯行予告を掲示板に書き込みさせられた人が誤認逮捕されてしまいました。
1件はCSRF脆弱性を突いたなりすまし、ほか4件は犯人の用意した「遠隔操作ウイルス」で操作されたとされます。
mixi日記「はまちちゃん」事件 2005年
ある日、大手SNSであるmixiで、タイトル「ぼくはまちちゃん!」本文「こんにちはこんにちは!」という日記が大量のユーザーによって掲載されました。
これはユーザーが意図して書き込んだものではなく、犯人が用意したURLをクリックすると、CSRFにより勝手にこの日記がアップされてしまったものです。URLは「mixiの裏技」といった、クリックしたくなるようなリンクになっていました。
この件について、現在はmixi運営により対策がされています。しかし別の攻撃を組み合わせた犯行も登場するなど、いたちごっことなっています。
ゼロデイ攻撃(zero-day attack)
脆弱性を発見→修正プログラム(パッチ)を提供するまでの間に、その脆弱性を突く攻撃です。修正プログラムはすぐに配布されないこともあり、例えば発見から10日後に修正が完了し配布された場合、その10日の間に脆弱性を攻撃されるリスクがあります。
公式サイトで脆弱性の発見を公表することは、「ここが弱点です」と攻撃者に教えているようなことにもなってしまいます。使っているソフトの修正パッチが公開されたら、すぐにアップデートで適用しましょう。
詳しくはこちらで解説しています。
スマートフォンの脆弱性にも注意
スマホやタブレット端末はパソコンと同じ機能を持っているので、携帯電話とは別物です。特にアプリの脆弱性が危険です。悪意をもって作られた不正アプリの問題も深刻ですが、正常なアプリの脆弱性も問題になっています。
スマートフォンアプリ 過去の脆弱性の例
Twitterアプリ
スマホに保存されている画像を不正アプリがTwitterに勝手に投稿したり、なりすまし投稿されたりする危険がありました。
この原因は、アクセス制限不備の脆弱性があったためとされています。
iPhone、Windows Phoneの対策方法
開発元のAppleやMicrosoftから修正パッチが提供されたら、すぐに適用します。OSを管理するベンダーの対応は、比較的早いです。
Androidの対策方法
Androidは開発ペースが速く、メーカーのカスタマイズも多いです。そのため独自付加した機能に脆弱性が見つかることもあります。メーカーが提供する修正パッチを適用する方法が確実ですが、メーカーによって対応に差があるようです。
脆弱性のある端末やアプリにもかかわらず、開発者が修正パッチを提供していないケースも、IPAの調査でわかっています。
またSDカード内のファイルにアクセス制限はできないため、誰でも閲覧・改ざんが可能です。インストールはGoogle Playなど公式ストアでおこなう、不審なアプリはインストールせず、評価などを確認することが大切です。
しかし「Androidは危ない」と頭ごなしに決めつけるのではなく、Androidはセキュリティを理解せずに開発された一部のアプリが危険であり、iPhoneはジェイルブレイク(改造)しなければ安全性が高い、ということです。
脆弱性攻撃の怖い点
攻撃されたことに気づきにくい
攻撃の形跡をソフトウェア側に残さず、攻撃を実行できる場合があります。
不正サイト閲覧やファイルのダウンロードをさせることなく、攻撃できる脆弱性もある
利用者がクリックなどの行動をしなくても、脆弱性を突かれて攻撃される場合があります。
なぜ脆弱性は狙われ続けるのか?
- 一般的な利用者は脆弱性に気づきにくい点
- コンピュータの更新作業を定期的におこなわない人が多い点
長期休暇あけや、長期間パソコンを使わなかったときなどは特に注意してください。連休中に修正パッチが配布されると、見逃す可能性があります。セキュリティソフトの期限なども切れていないか?チェックしましょう。
過去に発見された脆弱性の例
Internet Explorer(IE)の脆弱性 2015年8月
「細工されたWebページをInternet Explorerで表示すると、リモートでコードが実行される」という脆弱性が見つかりました。これを悪用されるとパソコンを乗っ取られる恐れがあります。
対象のOSはWindows Vista以降のほぼすべてのWindows、対象のバージョンはInternet Explorer 7/8/9/10/11です。
このためマイクロソフトは緊急でセキュリティ更新プログラムを配布しました。11が搭載されているWindows 10でも更新が必要です。
ワイヤレスキーボードの脆弱性「KeySniffer」 2016年7月
大手メーカーの低価格ワイヤレスキーボードで、「入力内容を最大約70メートル離れた場所から平文で攻撃者が傍受できてしまう」というモノのインターネット(IoT)に関する脆弱性が見つかりました。
メーカー12社のキーボードをテストした結果、8社のキーボード(東芝やHewlett-Packard(HP)など)で脆弱性が見つかった、と発表されています。
この原因は、低価格キーボードが通信を暗号化しないことにあります。これはアップデードで対策ができないので、Bluetoothを使ったキーボード、有線のキーボード、高性能キーボード(Logitech、Dell、Lenovo製など)の使用がおすすめとされています。
脆弱性を防ぐ!対策方法
アップデート(更新)する
セキュリティのエキスパートが真っ先に行う対策は、ソフトウェアアップデートをインストールし、修復パッチを適用することです。一度防いでも、次の脆弱性が発見される可能性があるので、そのつどアップデートして最新状態に保つことが重要です。
特に「セキュリティ対策のアップデート」通知がきたらすぐに実行します。ウイルス対策ソフトのアップデートも重要です。毎日のように大量の新種ウイルスが出現しているので、更新しないとそれらを検知できず、感染する恐れがあります。
またメーカーのWebサイトやセキュリティ情報サイトなどで、脆弱性情報が公表されていないか定期的なチェックをおすすめします。回避のための設定方法が公開されることもあるので、手順に沿って、かならず設定・確認をしてください。
セキュリティ設定をしっかりしておく
パソコンやサーバーにはウイルス対策ソフトをかならず入れ、最適な設定をすることで、攻撃されても防げる可能性が高まります。
もしウイルス対策ソフトが入っていないのであれば、インストールをおすすめします。
メーカーは、信頼性のある大手セキュリティソフトメーカーのものを利用するのが良いでしょう。
- ノートン(シマンテック社)
※30日間無料体験ダウンロード版有 - ウイルスバスター(トレンドマイクロ)
- ESETセキュリティソフト
サポートが終了したOSやアプリケーションは使わない
サポートが終了したOSなどは、安全性改善のための更新がされません。そのため古いバージョンのブラウザやOS(WindowsXPなど)、アプリケーションは脆弱性があっても対策ができないため、使わないようにします。
脆弱性の診断を受ける
企業では、自社サイトや機器の脆弱性を発見して事故を防ぐことも重要です。特にサイト運営や顧客の重要情報をあつかう職場では、セキュリティのプロによる第三者のチェックを受けることがほぼ必須になってきています。
Webアプリケーション診断、ネットワーク診断など、企業に合わせた様々なセキュリティ診断サービスがあります。
» 月350円~!Webサイトの脆弱性を診断する「SiteLock」
脆弱性を発見したら報告する(脆弱性報奨金制度)
情報処理推進機構(IPA)
脆弱性関連情報の届出受付
製品の脆弱性を発見し報告すると、謝礼として報奨金を支払う事業者もあります。
サイボウズ株式会社
サイボウズ脆弱性報奨金制度
LINE株式会社
LINE Security Bug Bounty Program
KRAKEN(ビットコイン取引所)
バグ発見謝礼金
まとめ
攻撃者は常に脆弱性を探し、攻撃できるスキマを狙っています。脆弱性を狙う攻撃は日々増え続けています。一つを防いでも新たな攻撃が出現する恐れがあり、対策を怠ると、重要情報が流出する危険があります。
いたちごっこになっているのが現状ですが、100%完璧なシステムをリリースすることは現実的に難しい以上、修正パッチを適用し続けていくことが最善です。
「セキュリティ対策は、どこまでやっても終わりがないからコストばかりかかる…」
このように思われがちですが、対策したぶん、大きな被害を受ける確率は下がります。もし攻撃されたとしても、最小限でくい止められるかもしれません。
取引先や自社サービス利用者の情報を漏えいさせて企業が損害を受けないためにも、セキュリティ診断や対策はおこなっておくべきです。