ITに詳しくない人であっても、「ハッカー」という言葉を聞いたことはあるはずだ。このハッカーという言葉は、文脈や使う人で定義が異なることも多く、意味を誤解している場合もある。この記事では、ハッカーの本来の意味と、クラッカーやホワイトハッカー、ブラックハッカーという言葉について解説する。
ハッカーとは
ハッカーとは本来、コンピューターやネットワークについて高度な知識や技術を持つ人々を意味する。ハッカーの語源である「Hack(ハック)」は、「鉈や斧などで叩き切る」という意味であり、コンピューターエンジニアの世界においては、「手早くラフな作業で期待に沿った機能を実現する」という意味合いを経て「最小限の努力で最大限の効果を上げる」といった意味で用いられるようになった。
ハックという言葉を「効率化のための〇つのハック」といった記事などで見聞きしたユーザーも少なくないはずだ。この例では、ハックという言葉が「あまり知られていない達人のテクニックや工夫」のような意味で使われている。
こうした背景からも見てとれるように、ハッカーという言葉は本来、一種の敬称として使われていた。しかし、ハッカーの一部がシステムへの不正侵入、データの盗み出し、マルウェアの拡散といった悪意を伴うハッキングを行ったことで、「ハッカー=攻撃者」という印象が世間一般に広がったと考えられる。
テレビや新聞といったマスメディアでも、もともとの文脈に沿わず、悪意ある攻撃者をハッカーという言葉を用いて報道することが多かった。そのため、ハッカーとはサイバー攻撃を行う悪者だという認識が浸透するに至った。
ホワイトハッカーとブラックハッカー、クラッカーの違い
しかし近年、より正確性を重視し、ハッカーと一括りにするのではなく、ホワイトハッカーとブラックハッカーに分けて扱うケースも増えてきた。この場合、ホワイトハッカーは「正義のハッカー」という意味合いで用いられる。
これらはそれぞれ、ホワイトハットハッカー、ブラックハットハッカーという名称が正式なものだ。「ハット」が付いているのは、「ブラックハット」が悪役を意味するとの由来からだとされる。逆に、「ホワイトハット」は正義の味方という意味合いで、同様の意味で使われる言葉に「ホワイトナイト」などがある。海外では、ホワイトハットハッカー、ブラックハットハッカーと呼ばれることが多いが、日本国内ではハットは省略されることが多い。
すなわち、ホワイトハッカーは正義のハッカーとして、その知識や技術を善意に基づく行為のために使う人たちであり、一方、ブラックハッカーは自らの知識や技術を不正な行為のために使う人たちである。また、「ハッカー=ブラックハッカー」という認識で広まっていたところ、最近ではもともとの意味合いに近いホワイトハッカーをハッカーと呼び、ブラックハッカーをクラッカーとして区別する呼称も広がりつつある。
この記事では、ハッカーという言葉を、ホワイトハッカーとブラックハッカーを含むハッカーの総称として扱うことにし、両者を区別する場合は、ホワイトハッカーとブラックハッカーと呼ぶことにする。
ハッカーが使う主なハッキング(クラッキング)手法
ハッキングとは、ハッカーがシステムやプログラムに対して行う解析や改変行為の総称である。ただし、単にハッキングと称する場合、ブラックハッカーが行うシステムへの不正侵入や破壊、データ改ざんなどの不正行為を指すことも多い。最近では、そうした不正行為はクラッキングと呼ばれるようになってきている。以下に、主なハッキング(クラッキング)手法を紹介する。
ゼロデイ攻撃
ソフトウェアやデバイスのファームウェアにおいて、新たに見つかった脆弱性に対して修正プログラムが提供される前(0-day)に、その脆弱性を突くことで成功確率を高める攻撃。既知の脆弱性を前提とする、従来のセキュリティ対策では防ぎにくい。
ID、パスワードの不正取得
IDとパスワード(クレデンシャル情報)を不正取得し、ユーザーになりすまして侵入を試みる。具体的な不正取得の手段としては、フィッシングサイトへの誘導や辞書攻撃、総当たり攻撃や肩越しに背後から覗き見るショルダーハッキングなどが挙げられる。
水飲み場攻撃
正規のWebサイトを改ざんし、アクセスしたユーザーのデバイスにマルウェアを感染させる攻撃。標的型攻撃の一種で、ターゲットユーザーがよく訪れるWebサイトを調べ、そのサイトを訪れたユーザーがマルウェアに感染するように罠を仕掛ける攻撃である。
SQLインジェクション
Webサイトに設けられている入力フォームに不正なSQLコマンドを入力するなどして、データベースを不正に操作することで情報を窃取しようとする攻撃だ。
ハッキング(クラッキング)への対策
ハッキングへの対策として代表的な取り組みの1つとして、セキュアコーディングと呼ばれる開発手法が挙げられる。セキュアコーディングとは、これまでのサイバー攻撃の事例をもとに、安全性を高めて開発を行おうとする取り組みだ。しかし、多様化・巧妙化の一途を辿るサイバー攻撃に対抗するためには、可能な限りシステムに存在する脆弱性を見つけ出し、迅速に対処を行うことが求められる。
そのために技術・知識を提供するのがホワイトハッカーの役割だと言える。ホワイトハッカーがブラックハッカーからシステムを守るために用いる代表的な手法として、「ペネトレーションテスト」や「脆弱性診断」、「デジタルフォレンジック」がある。
ペネトレーションテスト
擬似的なハッキング(クラッキング)を行うことで、システムやアプリケーションの脆弱性の有無を検証する。ブラックハッカーの攻撃パターンを類推し、あらゆる手口を用いてシステムに侵入しようと試みる。シナリオのゴールを設定し、検出した脆弱性を利用して実際に侵入を行う。
脆弱性診断
企業・組織内のデバイスやOS、アプリケーション、ネットワークに至るまでシステム全体のリスクを診断する。ペネトレーションテストと混同されるケースもあるが、脆弱性診断はIPA(独立行政法人 情報処理推進機構)などの公的機関が策定しているセキュリティ項目を網羅的にテストし、なるべく多くの脆弱性を検出するテストである。
デジタルフォレンジック
システムがサイバー攻撃によって侵入されたり、アプリケーションが改変されたりした際に、記録されているログをもとに調査・分析を行う。その結果、発覚したインシデントの原因を明らかにすることで、以降の被害を未然に防ぐことを目指す。
いずれの手法を用いても完全な防御を実現することは難しい。しかし、ホワイトハッカーのような攻撃手法を熟知した人材の力を活用することで、より高いレベルでの防御が可能になる。今後もホワイトハッカーと呼ばれる、侵入に関して高度な知識を持ちながら、それを防御のために活用する人材へのニーズは高まっていくことだろう。