セールスセンター2022.05.10
ハッキングとは? 手口と対策を分かりやすく解説
ハッキングによる被害は、企業や個人に対して経済的・社会的な負担を強いるものです。近年はハッキングの手口が巧妙化し、より高度な防衛策が必要とされています。
今回は、とある企業のIT部門に所属するセキュリティに精通した中山部長(44歳)と新人セキュリティ担当の石塚さん(24歳)の会話から、ハッキングの基礎知識や手口、対策方法を学んでいきましょう。
1. ハッキングとは何を意味するのか?
中山部長からいろいろと教わっているうちにサイバー攻撃について興味を持つようになったんですが、調べていると「ハッキング」という言葉をよく見かけます。
ハッキングはサイバーセキュリティを語るうえで外せない言葉だね。石塚さんはハッキングの意味を理解できた?
正直なところ、意味がよくわからなくて。解釈が色々あるというか…。
なるほど。そもそもハッキングという言葉に悪い意味はないんだ。小説や映画、アニメの影響で悪いイメージを持つ人が多いようだけどね。
え? 悪意を持って乗っ取るっていう意味じゃないんですか?
やっぱり少し勘違いしているみたいだね。その辺も含めて、まずはハッキングの正しい知識を習得していこうか。
ハッキングはサイバー攻撃の代表的な手法として語られることが多い言葉です。しかし、本来は悪い意味の言葉ではありません。
まずは、ハッキングという言葉の意味を正しく理解しましょう。
ハッキングとは?
ハッキングとは、「技術力のある人間による解析・改変・検証を伴う行為」のことです。
ハッキングの語源である「Hack」は、「切る、切り刻む」という意味を持っており、これが転じて「やりきる」という意味で使われるようになりました。
さらに「やりきる」という意味が、IT分野でのリバースエンジニアリング(解析・改変行為)を完遂した状態を表すようになり、「技術的に高度な作業を行う」という意味へと変わっていったといわれています。
ハッキングとクラッキングは似て非なる言葉
一般的に認知されている「ITを使った悪意のある乗っ取りや破壊行為」は本来「クラッキング」と呼ばれるものです。クラッキングとは、「crack(裂け目、割れ目)」が語源であり、破壊行為を表現する言葉です。
現代では、ハッキングのうち第三者に何らかの被害を与えるものをクラッキングとする見方もあります。
したがって、ハッキングを行う者(ハッカー)は「単純に高い技術力をもち、ITを使いこなす人間」であり、クラッキングを行う者(クラッカー)は、その技術力を悪用する人間」と定義することができるでしょう。
ハッキングには、技術的に深堀りして次に役立てるという意味が込められていたんですね。
そのとおり。今だって「ライフハック」とかいうでしょ? あれは他人の生活を乗っ取るとか破壊するっていう意味じゃないよね。
言われてみれば、確かに…。
ただ、クラッキングとかクラッカーという言葉は、日本ではそれほど浸透していないので、ハッキングとかハッカーでも通じると思うよ。とりあえず今回は、ハッキング=サイバー攻撃のひとつという意味で話そうか。
わかりました!では、ハッキングの手口には具体的にどのようなものがあるのか教えてください。
2. ハッキングの代表的な手口
ハッキングの代表的な手口としては、以下5つが挙げられます。
ゼロデイ攻撃
ゼロデイ攻撃とは、OSやソフトウェアの脆弱性に対し、防御策が確立される前に攻撃をしかける手口です。不特定多数のユーザーを対象とした「ばらまき型」と、特定のユーザーや企業を狙う「標的型」があり、脆弱性が発見されてから0日目(=ゼロデイ)に攻撃を仕掛けることから、修正パッチなどの防御策が広まるまでの時間差を利用した攻撃といえます。
ブルートフォースアタック
特殊なツールを使い、総当たり形式でログインIDやパスワードを探り出す手口です。古典的な手口であるため、入力桁数を増やしたり、他段階認証を用いたりとさまざまな対策方法が存在します。
しかし、シンプルであるがゆえにハードルが低く、未だに多用されているのが実情です。
出典:「産業サイバーセキュリティ対策強化へ向けて」(経済産業省)
ソーシャルエンジニアリング
ソーシャルエンジニアリングとは、おもにオフラインの活動によって個人情報や機密情報を盗み取る手口のことで、本格的な攻撃に入る前の下準備として行われます。
具体的には、「背後から肩越しに画面やキーの動きを盗み見る」「廃棄処分された書類を漁る」「プライベートな質問を装って重要情報を聞き出す」といった手法がその例です。
社会のなかに溶け込みつつ人間の油断や隙を狙うため、実は非常に対策が難しい手口といえるでしょう。
出典:「インシデント事例紹介とその対策~ソーシャルエンジニアリング編 <対策>~」
(経済産業省、特定非営利活動法人 日本ネットワークセキュリティ協会)
SQLインジェクション
SQLインジェクションは、アプリケーションに対して任意のSQL文を発行し、データベースを不正に操作・攻撃する手口です。SQLインジェクションの多くは、ウェブサーバーの脆弱性を突くものであり、顧客情報や機密情報の流出によって企業に甚大な被害を与えます。
特に顧客情報の流出は、経済的なダメージのみならず、社会的信用力の低下にもつながるため注意が必要です。
出典:「安全なウェブサイトの作り方 - 1.1 SQLインジェクション」(IPA)
クロスサイトスクリプティング
SQLインジェクションと同様に、Webサーバー内のアプリケーションに発生した脆弱性を突く攻撃です。Webサイトに不正なスクリプトを設置し、そのサイトを閲覧したユーザーがスクリプト情報を持ったままほかのサイトに移動(クロス)することで、不正な処理が広まります。
また、不正な処理は移動先のWebサイトを閲覧したユーザーにも被害を与えることから、被害が拡大しやすい点が特徴です。
クロスサイトスクリプティングではマルウェアに感染したり情報を抜き取られたりするため、大規模な情報流出の呼び水となってしまいます。
出典:「安全なウェブサイトの作り方 - 1.5 クロスサイト・スクリプティング」(IPA)
なるほど。OSやブラウザ、そのほかアプリケーションの脆弱性をついた手口が多いのですね。
そうだね。ハッカー(クラッカー)たちは、あらゆる脆弱性に対して日頃からアンテナを張っていて、入れそうな穴があればすぐに侵入するというイメージが正しいかもしれない。ソーシャルエンジニアリングを見てもわかるように、サイバー空間ではなく現実世界の脆弱性についても精通しているんだ。
本当に油断も隙もあったもんじゃないですね…。
彼らは常に知識とスキルをアップデートしているからね。でも、ポイントさえ抑えておけば、ダメージを最小限に留めることはできるよ。
3. ハッキングへの対策
脆弱性に関する情報収集とアップデート
ハッキングの脅威から逃れるためには、何よりもまず情報収集が大切です。OSやアプリケーションの提供元から発する情報を常にチェックし、可能であればCVEなど海外のサイバーセキュリティ情報を扱うサイトも活用するようにしましょう。
また、脆弱性に対して発行されたアップデートは早急に適用し、ゼロデイ攻撃から身を守ることを意識してください。
セキュアコーディング(セキュアプログラミング)
セキュアコーディングは、システムやアプリケーションの構築において、脆弱性の発生を防ぐことを念頭に置いたコーディング手法です。具体的には、データソースのホワイトリスト化や開発ツールのガイドラインに沿ったコーディングにより、信頼性の高いデータソースを用います。
また、処理と処理の間に防御壁を設け、異常な出力の発生を防ぎます。
パスワードポリシーの整備
パスワードポリシーの厳格化でも、ハッキングのリスクは低下します。「○文字以上で大小英字、数字を必ず含める」など、パスワード設定時の桁数や文字の種類を一定以上に増やすことで、不正アクセスやアカウントの乗っ取りにかかる手間が大きくなり、攻撃対象から除外される可能性が高まるでしょう。
ブルートフォースアタックの具体的な対策としては、英字の大文字・小文字と数字を組み合わせた8桁以上のパスワードを設定すると、効果が期待できるといわれています。
ログインに必要な情報を複雑、高度にする
「ログインID+パスワード」のほかに、ログイン回数の制限や、他段階認証や多要素認証などを用いる方法もおすすめです。たとえば、指紋や顔認証、IPアドレス、現在の位置(GPS情報)をログイン時の必須情報とすることで、悪意を持った第三者からのソーシャルエンジニアリングを防ぐことにつながります。
出典:「不正ログイン対策特集ページ 3-1. 「多要素認証」について」(IPA)
セキュリティソフトの活用
個別の対策が難しい場合は、統合型セキュリティソフトの活用も検討していきましょう。統合型セキュリティソフトは、個人のPCをマルウェアや不正アクセスから守るだけでなく、各種サーバーへのハッキング対策としても優秀です。
また、一般的なファイアウォールのほかにも、不正侵入を検知して通信を遮断するIPSや、Webアプリケーションへの防御に特化したWAFなどがあります。
すぐにできそうなことは、OSとアプリを常に最新の状態に保つことと、パスワードの桁数を増やすこと、あとはセキュリティソフトのインストールくらいでしょうか。
専門知識を持たない人ができる対策は、おもにその3つだね。セキュアコーディングや多要素認証は、開発者や管理者向けの対策だから。まずは、身近なところから確実に進めていこう。
4. まとめ
ハッキングは本来、「解析・改変・検証」を意味する言葉です。ただし、現在は高い技術を持った人間の「悪意ある行為」をさす言葉として使われることもあります。
ハッキングは油断や隙、各種脆弱性を付いた手口が多いため、セキュリティソフトの活用や修正パッチの適用による対策が重要です。