脆弱性の種類と対策について

avatar

 2018.01.10  Japanブログ編集部

「情報セキュリティ」と「脆弱性対策」は、切っても切り離すことのできない関係にあります。現存する全てのソフトウェアには脆弱性が存在し、都度修正プログラムを適用しなければ、サイバー攻撃者の格好の的となってしまうのです。 

しかし、この脆弱性について理解している方はどれ程いるのでしょうか?セキュリティ対策のアウトソーシングや、セキュリティソリューションの導入が当たり前となった現代にいて、情報セキュリティに従事しない方でも基本的な情報を理解しなければならない時代となっています。

そこで今回は、そもそも脆弱性とは何か?という基本的な知識から、脆弱性を狙ったサイバー攻撃の種類や、その対策方法について解説していきたいと思います。

脆弱性とは?

脆弱性とは、OSやソフトウェア開発において、プログラム設計上に発生したミスであり、それがそのままセキュリティホール(セキュリティ上の弱点)となった欠陥を指します。 

欠陥といっても、システムが正常に作動してないわけではありません。正常に動作しつつもセキュリティ上の弱点が発生した場所を脆弱性と呼ぶのです。ちなみにシステム動作に影響する欠陥を一般的にバグと言います。

脆弱性が無くならない理由は多岐に渡りますが、最も大きな理由が「ビジネスとの整合性」ではないかと思います。

豊富な脆弱性知識を持ち合わせている開発者がいる場合、テスト段階で十分な時間とコストをかけることができれば、脆弱性の発生を限りなく少なくすることができます。しかし実際の現場では、開発費用を抑えたいという意識や、クライアントからの要望により十分な時間をかけられない場合が多いのです。

このため開発側でもシステムの動作確認だけでテストが終わってしまい、脆弱性の確認が不十分になっているケースが少なくありません。

あるいは、脆弱性知識を十分に持たない開発者により、機能優先でシステム開発を行い大量の脆弱性が発見されることも。 

また、ほとんどのOSやソフトウェアが利便性向上のためのアップデートを実施しているので、都度発生する脆弱性もあり、情報セキュリティ業界では「脆弱性を完全に無くすことはできない」と言われています。

脆弱性の種類

脆弱性の種類は非常に多く、社内システムのいたる所に点在しています。特に多く発生する場所がWebサーバやWebアプリケーションです。Web関連システムはアップデートも多く、それだけに脆弱性が多く発生するのです。

また、Web関連システムは一般公開されることが多いので、サイバー攻撃の標的になりやすいという傾向があります。

ここではWeb関連システムに発生する主な脆弱性の種類を紹介します。

ハートブリード

ハートブリード(Heart Bleed)とは、OpenSSLの拡張機能である「Heart Beat(ハートビート)」で発見された脆弱性です。

Heart BeatはOpenSSLの死活監視を行う拡張機能であり、送信されたデータをオウム返しのように返答することで、OpenSSLが正常に作動しているかを確認できます。

データを送信する際はデータサイズも同時に送られるのですが、ここに脆弱性が発見されました。 

攻撃者はHeart Beatから送信されるデータサイズを通常よりも大きく詐称することで、メモリから余分なサイズ文のデータを不正に受け取ることができるのです。メモリにはOpenSSLの暗号鍵も保存されているため、万が一この暗号鍵が流出すればWebサイト上で行われるデータの送受信をすべて盗聴されてしまいます。

バッファオーバーフロー

「バッファ」とは、データ(文字や数値)を格納するための、メモリ上に確保する保存領域です。バッファ領域には格納できるデータの上限が決まっているのですが、これを溢れさせる(オーバーフロー)のがバッファオーバーフローというサイバー攻撃です。

バッファ領域からデータが溢れると、メモリ上の不正な場所にデータを格納することになってしまいます。この時、プログラムが誤作動を起こしたり不正に書き換えられてしまうことで、システムを乗っ取られたり情報漏えいなどが起きてしまうのです。

シェルショック

OSとクライアントを仲介する機能として「bash(Bourne Again Shell)」というソフトウェアが存在します。このbashに発見された脆弱性がシェルショックであり、2014年と比較的最近に発見された脆弱性です。

シェルショックを悪用すると、攻撃者は外部から遠隔でシェルコマンドを実行し、その結果サーバが乗っ取られてしまったり不正プログラムに感染させられてしまう可能性があります。

また、サーバだけでなくネットワーク内の様々な危機が狙われてしまうため、十分な注意が必要です。

SQLインジェクション

Webサーバのデータベースサーバの操作には、主にSQL文という言語が使用されています。このSQL文の脆弱性を利用して実行されるサイバー攻撃がSQLインジェクションです。

入力フォームが設置されているWebページにおいて、不正SQL文を挿入すると、直接的にデータベースを操作されてしまい、内部ネットワークへの侵入や情報搾取を許してしまいます。

Webサイトのサイバー攻撃において最も発生しやすい被害の一つなので、しっかりとした対策が欠かせません。

クロスサイトスクリプティング

動的ページを生成するWebサイトには、HTMLJavascriptなどのプログラミング言語に脆弱性が発生することも少なくありません。この脆弱性を突き、不正ページへ誘導したり個人情報を搾取するのがクロスサイトスクリプティングです。

Webサイトに不正スクリプトが埋め込まれてしまうと、ユーザーが動的ページを生成する際にそれが実行されてしまし、管理者が意図しない個人情報入力ページ(攻撃者が準備した)に誘導されてしまいます。

そこでユーザーが個人情報を入力すれば、攻撃者は容易に情報搾取を行えます。

脆弱性対策の基本とは?

様々な場所で発生する多くの脆弱性。それらに対応するための基本的な脆弱性対策は「迅速なアップデート対応」と「攻撃を前提とした対策」です。

深刻度に関わらず脆弱性が発見された場合、ベンダは脆弱性をカバーする修正プログラム(セキュリティパッチ)を配布します。この修正プログラムを提供することは、基本的な対策でありながら最も重要だとも言えます。

一方「攻撃を前提として対策」とは、「セキュリティに100%はない」ということを理解した上で、サイバー攻撃を許してしまった場合のセキュリティ対策を取るということです。万が一内部ネットワークへの侵入を許してしまったとしても、内部にて不正を検知することができれば、情報漏えいなど重大なセキュリティ事件を防ぐことができます。

まとめ

情報セキュリティにおける脆弱性対策は、OSやソフトウェアベンダの修正プログラムを待つだけでなく、様々なセキュリティ機関が発信する脆弱性情報をキャッチしたり、迅速な対応とることが重要であり、高い専門性が求められます。

また、トリップワイヤでは脆弱性診断や管理に最適なソリューションを提供しています。
Tripwire IP360既存のツールやシステムと統合することで、企業内がすべての資産を発見し、脆弱性の優先順位を決め、手作業を最小限に抑えることができます。 Tripwire IP360には、最上位のリスクを識別する高度な脆弱性スコアリングも装備されています。

TRIPWIRE IP360 データシート

RECOMMEND関連記事


RECENT POST「脆弱性管理」の最新記事


この記事が気に入ったらいいねしよう!