ESET/マルウェア情報局

サイバー攻撃への対策は、まず脆弱性を知ることから

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はキヤノンITソリューションズが提供する「マルウェア情報局」に掲載されたサイバー攻撃への対策 巧妙化する手口にどう備えるか【連載 第4回(全4回)】を再編集したものです

サイバー攻撃は「脆弱性」につけ込む

 格闘競技などの世界において、攻撃を効率的におこなうには、「弱いところ=脆弱性」を狙うのが基本であるのは疑う余地もないだろう。強靭な部分をいくら攻撃しても相手に与えるダメージは少なく、効率は極めて悪い。サイバー攻撃でも基本的には同じ考え方である。サイバー攻撃ではシステムに関する脆弱性を突き、相手にダメージを与える。多層構造になっているシステムにおいて主に脆弱性となるのは人間が開発・更新するプログラムや、システム全体の運用、利用時である。それぞれを解説していく。

1)プログラム分類ごとの脆弱性
 まず、プログラムは「アプリケーション(ウェブアプリを含む)」、「プラットフォーム(ミドルウェア、OS、サーバープログラムなど)」、「そのほか」の3つに大別できる。

a. アプリケーション
 アプリケーションとはユーザーがパソコンやスマートフォンなどの端末を利用し、リクエストとレスポンスを介して何かしらの作業をおこなうプログラムのことである。利用端末にインストールするタイプのネイティブアプリとウェブアプリが代表的なものとして挙げられる。ユーザーの使い勝手を向上すべく、ユーザーインターフェースや機能のアップデートが頻繁におこなわれるのが特徴だ。どちらもユーザーからの入力を伴うこともあり、宿命的に脆弱性を抱えているともいえる。

 ウェブアプリは最近のウェブテクノロジーの進化に合わせ、プログラミング言語のアップデートも多く、更新管理の部分で脆弱性を抱えているプログラムも少なくない。他にもAPIによるウェブアプリ間の連携なども増えており、こうした部分を狙うような手口も出てきている。

(「アプリケーション」を狙う攻撃手口)
ゼロデイ攻撃、マルウェアによる攻撃、不正アクセス/ログイン、水飲み場型攻撃DDoS攻撃クリックジャッキングSQLインジェクションクロスサイトスクリプティング、セッションハイジャック、MITB攻撃など

b. プラットフォーム
 利用端末の処理を裏側で支えるプログラム群のことをプラットフォーム、あるいはシステムプログラムと呼ぶ。システム全体の動作を司るのがOS(オペレーティングシステム)、ハードウェアの動作を担うBIOSやデバイスドライバー、ミドルウェアなども該当する。

 端末や周辺ハードウェアを操作するソフトウェアのため、基本的に頻繁に変更される性質ではない。システムの基盤となる部分のため、安定性は高い傾向だが、一方でCPUに関するプログラムにリリースから数年して致命的なバグが見つかった例など、長期間バグが検出されないままという事態も発生している。

(プラットフォームを狙う攻撃手口)
ゼロデイ攻撃、マルウェアによる攻撃、不正アクセス/ログインなど

c. そのほかのプログラム
 厳密にはプログラムではないが、例えばHTML・CSSのみで構成されたウェブサイトなども広義ではプログラムの一種に該当するといえるだろう。ウェブアプリと同様に、ウェブサーバー上にアップロードすることになるが、ユーザーからの入力処理を伴わないため、安全性は比較的高いとされる。しかし、最近ではJavascript経由でサーバー上のデータベースと連携するものや、WordPressなどのCMS(コンテンツ マネージメント システム)を利用して制作されるものもあり、これらの場合は動作させるプログラム部分などに脆弱性が生じることがあるので注意が必要だ。

(「そのほかのプログラム」を狙う攻撃手口)
DDos攻撃、不正アクセス/ログイン、改ざん、水飲み場攻撃、クリックジャッキング、SQLインジェクション、クロスサイトスクリプティング、セッションハイジャックなど

2)システムの運用、利用時に生じる脆弱性
 システムの「運用、利用」に関する脆弱性は大別すると「リテラシー不足」、「うっかりミス、不注意」、「仕組みの形骸化」となる。それぞれ脆弱性の特性について解説していく。

a. ユーザーのリテラシー不足
 スマートフォンの普及でインターネットの利用が一般化し、デジタルテクノロジーのリテラシーが不足しているユーザーが増えている。自身がサイバー攻撃の被害に遭うとは思っていないことが多く、無防備なところを攻撃者につけ込まれてしまう。個人であればまだ被害は限定的だが、組織の場合は大きな損害に至るケースもある。予防のためにはリテラシーを身に付けさせるための研修・教育をおこなうことが一般的であるが、何よりも被害が生じたときの損害の大きさなどを伝えて「自分ごと化」させるのが重要である。

(「リテラシー不足」を狙う攻撃手口)
標的型攻撃、マルウェアによる攻撃、水飲み場攻撃、フィッシング詐欺、不正アクセス/ログインなど

b. ユーザーのうっかりミス、不注意
 個人、組織を問わず一番の落とし穴となるのが人間のうっかりミス、不注意である。コンピューターなどの機械と異なり、人間は100%の再現性で動くことは難しい。精神的、身体的に疲労状態や過度の緊張下にあるときはなおさらである。そうした人間の特性を踏まえ、ミスはゼロにできないことをまず再認識させることがポイントだろう。その上で、どういった代替策であればミスを防げるかを想定し、対案を練っていく。それでもヒューマンエラーをゼロにすることばかりに傾注するのは、精神論を振りかざすだけで思考停止状態に陥ってしまう可能性を拭えない。科学的見地から人間の特性を前提とした対策を講じることが重要である。

(「うっかりミス、不注意」を狙う攻撃手口)
標的型攻撃、マルウェアによる攻撃、水飲み場攻撃、フィッシング詐欺など

c. 仕組みが形骸化している
 組織の場合、過去のミスや研修などでの学習をもとにサイバー攻撃の危険性を認識し、対策としてさまざまなビジネスルールを設定する。ルール制定直後、その危険性が共有されているときはルールが適切に守られ、運用されていく。しかし、時間が経過すると危険性を認識していたのは遠い過去のこととなり、ルールを守ることが目的化してしまいがちである。そうなると新しいサイバー攻撃の危険性、脅威を踏まえてアップデートしていくべきルールも考慮されず、古いままの状態で「遵守する」ことだけに注意が向いてしまう。それでは日進月歩で変化を遂げる攻撃手法にはいつか対応しきれないときがやってくる。

 そうならないためにも、ルールはあくまで危険予防のために存在するものであることを常に確認・意識し、サイバー攻撃の状況に応じたブラッシュアップをセットで講じていくべきである。そうした観点を共有するためにも、ルールを運用するものに対して教育・研修をする必要があるだろう。

(「仕組みの形骸化」を狙う攻撃手口)
標的型攻撃、マルウェアによる攻撃など

「入口」、「出口」、「内部」3つの視点からの対策

 サイバー攻撃への対策は「脆弱性を認識し、可能な予防策を講じて被害を最小化する」ということに尽きる。サイバー攻撃に対するソリューションは現在、さまざまなものがあるが、すべてを取り入れたからといって被害がゼロとなるわけではない。技術が進化し、人間が介在するかぎり脆弱性はなくならないという前提に立つべきである。また、それらソリューションすべてを導入できるほど潤沢に予算を投じるべきかという視点もある。ルールを数多く制定してしまうことは作業効率を大きく低減させる側面があることも忘れてはならない。そのためには、「入口」、「出口」、「内部」と3つに切り分けてそれぞれ対策を考え、可能な範囲で対策を講じることである。

1)「入口対策」とは、「侵入させないこと」
 組織の内部に入り込ませないために、悪意ある攻撃をネットワークの前で遮断するファイアウォールや、危険性の高いメールを除外するスパムフィルターなどといったソリューションがある。しかし、「どれが悪意あるものか」は単純に判断することが難しい。現在のソリューションでは過去のパターンをもとに類推する仕組みを取り入れているものが多いが、ときに意図していないものが悪意あるものであることもゼロではない。そのため、絶対に「侵入されてしまう」という心構えで対案も含めて検討をすることが求められる。

2)「出口対策」とは、「外部へ持ち出させないこと」
 基本は組織の内部から外部へ重要な情報などを持ち出せなくする対策である。某教育業界の大手企業で起きた、内部犯行により膨大な個人情報が外部に持ち出された事件はあまりにも有名だろう。情報流出で多いのは内部からの持ち出しであることは、対策を考えていく際には強く意識してほしい。また、仮にマルウェアなどに侵入されて悪意ある行動をとられた場合でも、そのプログラムから組織の外部への拡大を抑制することで「加害者」となること、すなわち二次被害を予防できることにつながる。

 ただし、日常の業務はいまや組織内部だけで完結せず、協力会社など外部とのやりとりで通信をおこなうのが普通だ。そのため、そうした日常業務に極力支障が出ない範囲でセキュリティ対策を強化する「エンドポイントセキュリティ」製品が存在する。最近では企業向けソリューションの提供も増えている。

3)「内部対策」とは、「内部で広げないこと」
 仮に、組織内にマルウェアが侵入した場合や、USB経由などで悪意あるプログラムに組織内のコンピューターが感染した場合、その被害を一部のコンピューターにとどめ、組織内・外部に広げないための対策である。二次被害を防ぐために、感染した端末を隔離する、といったことが挙げられる。組織の構成人員が増えるほど、セキュリティ上の「穴」は増え、被害に遭う確率は上がらざるを得ない。その前提で、一定のマルウェアなどによる被害は起きるものとして、二台目の被害を防ぐためにソリューションを利用することが基本的な対策となる。

 これら3つの視点からの対策を総合的にサポートするパッケージは企業向け、個人向けを問わず提供されている。過去には侵入されたら最後、組織内すべてのコンピューターがダウン、感染してしまうような事態も発生していた。しかし、最近は仮に侵入された際でも被害を最小限に食い止めるなど、現実に即した対策が可能となってきている。

まとめ

 年々、高度化かつ巧妙化するサイバー攻撃の手口を予測し先回りし続けるのは非常に困難である。サイバー攻撃で得られる利益が過去と比較にならないほど大きくなっている現在、攻撃者も新しい手口の開発に莫大な「投資」が可能となってきている。そのため、一定の確率で侵入される前提に立った対策を講じることが現実に即している。こうした考えのもと、起きた事象を踏まえた対策を速やかに講じていくことで以降の予防の強化までをセットとして対応するのが「インシデントレスポンス」という概念である。サイバー攻撃へのセキュリティ対策がかつてないほどに注目を集める今、この概念は着実に広がりつつある。被害発生時に大きな損害を被る企業はもちろんのことであるが、個人でも同じ前提で各自の対策を講じることが必要な時代になりつつあるのではないだろうか。