ハッキングという言葉から悪意のある行為を想起する人は少なくないはずだ。しかし、この言葉が使われだした当初は悪い意味を持つ言葉として使われているわけではなかった。そもそも、ハッキングとはどのような行為を言い、どのような背景で悪意のある行為を指し示すようになっていったのだろうか。この記事では、ハッキングについての基礎知識や具体的な手口を解説していく。
ハッキングとは何か
ハッキングとは、コンピューターについて高いスキルを持つ技術者が、ハードウェアやソフトウェアを解析し改変する行為のことであり、その言葉が生まれた当初は、悪い意味で用いられてはいなかった。むしろ、ある目的のためにソフトウェアを改良して使う、賢い工夫という意味で使われることが多かった。しかし、サイバー攻撃者が、その攻撃声明の中で自らを「ハッカー(ハッキングする者の意)」と名乗ったことをきっかけに、ハッキングが悪い意味で使われるようになっていった。
なお、元々の意味を尊重し、悪意のあるハッキングをクラッキング、クラッキングを行う者をクラッカーと呼び、ハッキングやハッカーと明確に区別することもある。しかし、一般的にはハッキングと呼ぶ行為は悪意のあるものであり、ハッキング=サイバー攻撃の一種という解釈が広まっている。
ハッキングによる代表的なサイバー攻撃
ハッキングによるサイバー攻撃には、さまざまなものがあり、概ね以下の4種類に大別できる。
Webサイト改ざん
Webサイトを勝手に書き換えてしまう行為であり、具体的な例としては、Webサイトに関係のない画像をトップページに設置する、あるいはトップページ自体を改ざんして別サイトのように見せかける、あるいは見た目は変わらないものの、意図的に追加したスクリプトでマルウェアを感染させるサイトに誘導するといったものがある。
サーバーの停止
サーバーがハッカーの攻撃により停止してしまうというものだが、その手段によって二つに大別できる。一つはサーバーの脆弱性を突いてサーバーの内部に侵入し、直接サーバーを停止してしまうというもの。もう一つは外部からサーバーに攻撃を仕掛けて高い負荷をかけることで、サーバーを停止に追い込むというものだ。
情報の盗み出し
サーバーなどの脆弱性を突いて侵入することにより、顧客情報をはじめとする重要な情報が盗み出されてしまう。盗み出された情報は、ダークウェブなどのブラックマーケットで取引されることもあり、情報の内容によっては企業イメージが大きく損なわれることにもなる。
別の攻撃の踏み台にされる
Webサイトが改ざんされスクリプトを書き換えられると、他者への攻撃の踏み台にされる可能性がある。悪意のあるスクリプトに改ざんされたWebサイトにアクセスしたユーザーが、マルウェアを感染させるサイトに強制的に遷移させられ、マルウェアに感染してしまうことがある。これは見方を変えると、その改ざんされたサイトのせいでマルウェアに感染させられたのである。すなわち、そのWebサイトの管理者が加害者として扱われ、責任を問われることにもなりかねないのだ。
また、管理するパソコンやスマホなどの端末にバックドアが設置され、ボットを仕掛けられた場合も、DDoS攻撃の加担者となる可能性がある。
ハッキングで用いられる主な手口
ハッキングの手口としては、具体的に次のようなものがある。
ゼロデイ攻撃
既存の脆弱性を突くのはハッキングの基本だが、より対処が困難な攻撃としてゼロデイ攻撃と呼ばれるものがある。ゼロデイ攻撃とは、新たに発見された脆弱性が公表される前、あるいは修正プログラムの提供前に行われるサイバー攻撃のことで、攻撃を受けた側は被害に発展する可能性が極めて高くなる。
辞書攻撃
端末への侵入に必要なIDやパスワードなどを推測する手口の一つ。一般的なユーザーの習慣として、パスワードを覚えやすくするために、意味のある単語や人名を使うことが多い。この攻撃では、そうした習慣を逆手に取り、辞書や人名録など人間にとって意味のある単語をリスト化したものを用いて、順番に照合していくことで、合致するIDやパスワードを探し出すというものだ。
総当たり攻撃
ブルートフォースアタックとも呼ばれる手口であり、IDやパスワードを見つけるために、考えられるすべてのパターンを総当たりで試して、合致する組み合わせを見つけ出すというものだ。IDやパスワードの文字数を増やすことで、総当たり攻撃への耐性は高まるものの、最近はコンピューターの計算能力が飛躍的に向上したこともあり、短時間でIDとパスワードが破られることも増えているとされる。サイバー攻撃者は、辞書攻撃と総当たり攻撃を組み合わせて照合することで、より迅速にIDとパスワードの合致パターンの抽出を可能にするシステムを利用しているのだ。
ショルダーハッキング
いわゆる背後からの覗き見・盗み見のこと。ユーザーの肩越しにタイピングしているところやディスプレイの画面を覗くという古典的な手法で、IDやパスワードといった重要な情報を盗み、不正アクセスを試みるというものだ。
そのほか、アナログな手口ではあるが、ゴミ箱をあさってパスワードが書かれた紙などを探すトラッシング、上司や取引先、警察などになりすまして、ログイン情報などを聞き出す方法もある。こうした手口は、ソーシャル・エンジニアリングとも呼ばれる。
ハッキングへの有効な対策
このように、攻撃者はさまざまな手口でハッキングを試みるため、しっかりと対策を行うことが重要だ。ハッキングへの有効な対策としては、次の4つが挙げられる。
OSやアプリケーションを常に最新の状態にしておく
ハッキングの多くは、システムの脆弱性を突いて侵入を試みる。既存の脆弱性は、OSやアプリケーションを最新のものにアップデートすることで、その脆弱性を潰すことができる。常に最新の状態を維持し、既存の脆弱性に対処しておくことが有効だ。
パスワードをより強固なものに変更する
パスワードを推測されにくい、より強固なものに変更することで、辞書攻撃や総当たり攻撃への耐性を高めることができる。具体的には文字数を増やし、数字や大文字、小文字などの文字も混在させることで照合に必要なパターン数を増やすことができる。ルーターや無線LANアクセスポイントなどは、IDやパスワードを出荷時の初期設定のまま変更せずに運用されていることが多い。しかし、そのような状態で利用を継続すると、ハッキングされる可能性は高まる。
また、ソーシャル・エンジニアリングを防ぐためには、パスワードを紙などに書かない、他人に聞かれても絶対に明かさないといった、ユーザーの意識向上が欠かせない。
ログイン試行回数の制限や多要素認証の導入
システムに実装されているセキュリティ機能を有効に使うことで、ハッキングに遭遇する可能性を低減できる。例えば、ログイン試行回数の制限、指紋や顔などの生体認証、GPSを用いた位置情報などを多要素認証として組み込むことで、安全性が大きく高まる。
統合型セキュリティソフトの導入
ESETをはじめ、統合型セキュリティソフトの導入により、ハッキングに結びつく行為を抑止することができる。具体的には、マルウェアの侵入やポートスキャンなどを検出・対処することができる。さらに、企業・組織などで、一般に公開しているサーバーについては、IPSやWAFを導入することで、アプリケーション層やプラットフォームレベルへの攻撃も防御することができる。
適切な対策に加え、利用時のITリテラシーも求められる
ハッキングによる被害を防止するためには、ここまで解説してきたような対策に加え、ユーザーそれぞれがITリテラシーを向上していくことが重要だと言える。どのような犯罪手法があるかを知っておくことにより、事前に心構えができているとそうでないのでは、大きな違いとなる。
また、世間で定評のあるセキュリティ製品をただ導入するにとどめず、適切な利用方法を学んで設定を行うことなど、自分事として捉えた対応をするように心がけたい。もし、情報漏えいをはじめとした被害に遭遇した場合、その被害で不利益を受けるのは自分自身や所属組織であることを認識し、適切な対処をしていくことを意識してほしい。