トピック概要
歴史上の有名な戦いについて学んだことがある人なら、まったく同じ戦いが2つとないことはお分かりでしょう。それでも、有効性が実証されていることから、同じような戦略や作戦が使われることはよくあります。
同様に、犯罪者が組織をハッキングしようとする場合、絶対に必要がない限り、新しい方法を作り上げることはしません。マルウェア、フィッシング、クロスサイトスクリプティング(XSS)など、すでに有効性が高いことで知られている一般的なタイプのハッキング技術を使うのです。最新の情報漏洩を報じるニュースの見出しを理解しようとしている、または自分の組織で起ったインシデントを分析している場合でも、悪意のあるアクターによって危害が発生する可能性のあるさまざまな攻撃ベクトルを理解していた方が良いでしょう。今日、最も一般的な攻撃の種類をご紹介します。
画面にウイルス対策の警告が表示された、またはメールに添付された悪意のあるファイルを誤ってクリックしたことがあるということは、マルウェアに攻撃されかかったということです。攻撃者はマルウェアを利用してまずユーザーのコンピューターに足場を得て、そこからユーザーの職場へと侵入するという手口を好みます。それが非常に有効であるからです。
「マルウェア」とは、ウイルスやランサムウェアといった様々な形の有害なソフトウェアを指します。マルウェアが一度コンピューターにインストールされると、マシンのコントロールからユーザーの行動、キーストロークの監視、そしてさまざまな機密データをユーザーのコンピューターやネットワークから攻撃者のホームベースへ密かに送信することまで、あらゆる被害が発生する恐れがあります。
攻撃者はコンピューターにマルウェアを侵入させるためにさまざまな方法を使いますが、多くの場合、マルウェアのインストールにはユーザー側のアクションが必要です。例えば、リンクをクリックしてファイルをダウンロードする、無害に見える添付ファイル(Word文書やPDFなど)を開くといったものがありますが、実際にはこれらのファイルの内部にマルウェアのインストーラーが隠されているのです。
もちろん、通常は身に覚えのない添付ファイルを開いたり、受信メールにあるリンクをクリックしたりすることはしないので、そのようなアクションを起こさせるのには説得力のある理由が必要です。攻撃者もそのことを知っています。攻撃者がマルウェアをインストールさせたり、機密情報を暴こうとしたりする場合、普段ならユーザーがとらない行動を起こさせるため、フィッシングや誰かあるいは何かになりすますという手段をよく使います。フィッシングは人の好奇心や衝動に働きかけるため、阻止が困難な場合があります。
フィッシング攻撃では、攻撃者があなたの信頼する上司や取引のある会社になりすましてメールを送ることがあります。そのようなメールは信頼できるように見え、また何らかの緊急性が伴います(例:「あなたの口座で不正行為が検知されました」)。そしてメールには添付ファイルやクリックさせようとするリンクがあります。悪意のある添付ファイルを開くと、コンピューターにマルウェアがインストールされます。リンクをクリックすると、合法に見えるウェブサイトが開き、重要なファイルにアクセスするためという理由でログインが求められます。ただし、それはログインする際に使うあなたの認証情報を入手するためのトラップなのです。
フィッシング攻撃を阻止するためには、メール送信者や添付ファイル/リンクを検証することの重要性を理解する必要があります。
SQL(「シークエル」と読みます)は「Structured Query Language」の略で、データベースと通信するために使用されるプログラミング言語です。ウェブサイトやサービス向けに重要なデータを保管するサーバーの多くは、QLを使ってデータベース内のデータを管理しています。SQLインジェクション攻撃は特にこの種のサーバーを標的とし、悪意のあるコードを使用して、通常では不可能な情報漏洩をサーバーに起こさせます。これは特に、クレジットカード番号、ユーザー名やパスワード(認証情報)、または個人を特定できる情報など、攻撃者にとって魅力的で有益な標的となるウェブサイト顧客の個人情報をサーバーが保管している場合に問題となります。
SQLインジェクション攻撃 (SQLi)は、SQLサーバーが悪意のあるコードを実行できるようにする既知のSQL脆弱性の1つを活用することで動作します。例えば、SQLサーバーがインジェクション攻撃に対して脆弱な場合、攻撃者がウェブサイトの検索ボックスでサイトのSQLサーバーに保管されたすべてのユーザー名とパスワードを強制的にダンプさせるコードをタイプするということも可能です。
SQLインジェクション攻撃では、攻撃者はユーザーの認証情報や機密の財務データなどの保管されたデータを入手するために、脆弱なウェブサイトを狙います。しかし、攻撃者がウェブサイトのユーザーを直接標的にする場合は、クロスサイトスクリプティングを選ぶ場合があります。SQLインジェクション攻撃同様、この攻撃もウェブサイトに悪意のあるコードを注入しますが、ウェブサイト自体が攻撃されているわけではありません。代わりに、攻撃者が注入した悪意のあるコードはユーザーが攻撃されたウェブサイトを訪問したときにのみ実行されるため、ウェブサイトではなく訪問者を直接狙うものです。
攻撃者がクロスサイトスクリプティング攻撃を展開できる最も一般的な方法は、悪意のあるコードをコメントか自動的に実行できるスクリプトに注入することです。例えば、ブログのコメントに悪意のあるJavaScriptへのリンクを埋め込むことができます。
クロスサイトスクリプティング攻撃は、悪意のある出来事が起こったという兆候すらなく、ユーザーの情報を危険にさらすため、ウェブサイトの評判を著しく毀損することがあります。ウェブサイト所有者がそもそも問題があると認識する以前に、ユーザーがサイトに送信する機密情報(認証情報、クレジットカード情報、個人データなど)がクロスサイトスクリプティングによってハイジャックされるのです。
田舎の一車線道路で見渡す限りの渋滞にはまってしまったと想像してみてください。通常、この道路では車を1~2台しか見かけないのに、お祭りとスポーツイベントがほぼ同時刻に終了し、町から出るにはこの道を通らなければいけません。道路は膨大な交通量に対応できず、その結果、大渋滞が起こり誰も町から出られません。
DoS攻撃を受けると基本的にこのような状況になります。ウェブサイトにその処理能力を超えたトラフィックを殺到させると、ウェブサイトのサーバーが過負荷となり、アクセスしようとしている訪問者にコンテンツを提供することが不可能になります。
もちろん悪意のない理由でこうなることもあります。 速報が出て、人々が多くの情報を得ようとして新聞のウェブサイトがトラフィックオーバーロードになっている場合などです。しかし多くの場合、この種のトラフィックオーバーロードは攻撃者が過剰なトラフィックを殺到させてすべてのユーザーに対してウェブサイトを停止させるため、悪意のあるものです。
一部のケースでは、このようなDoS攻撃が多くのコンピューターから同時に行われます。この攻撃のシナリオはDistributed Denial-of-Service(DDoS)攻撃と呼ばれます。この種の攻撃は世界中の多くの異なるIPアドレスから同時に攻撃者が現れるため、ネットワーク管理者が攻撃元を特定しにくく、克服することがさらに困難です。
インターネット使用時、コンピューターは世界中のサーバーと多くの細かいトランザクションを交換し、特定のウェブサイトやサービスを要求していることを知らせます。そして、すべてが想定通りに行われれば、ウェブサーバーがリクエストに応答してアクセスしたい情報を提供します。このプロセスまたはセッションは、ユーザーが単にブラウジングしていたり、ユーザー名とパスワードを使用してウェブサイトにログインしていたりする場合などに発生します。
コンピューターと遠隔ウェブサーバー間のセッションには個別のセッションIDが与えられます。これは2者間のプライベート情報であるはずです。しかし、攻撃者はセッションIDをキャプチャしてリクエストを行うコンピューターになりすましてセッションをハイジャックすることができ、何の疑いもないユーザーとしてログインして、ウェブサーバー上の権限のない情報にアクセスします。攻撃者がセッションIDを盗む方法には、クロスサイトスクリプティング攻撃を使ったセッションIDのハイジャックなど、いくつかのやり方があります。
攻撃者はまた、リクエストするコンピューターとリモートサーバー間に自身を挿入し、セッションの相手になりすましてハイジャックすることもあります。これにより攻撃者は両方向の情報を捉えることができます。この方法は一般的に中間者攻撃と呼ばれています。
今日のユーザーは多くのログイン名やパスワードを持っており、分かりやすくするために複数のサイトで認証情報を再利用したいと考えがちです。セキュリティのベストプラクティスとして、一般的には各アプリケーションやサイトで個別のパスワードを使用することが推奨されていますが、多くの人がいまだにパスワードを再利用しており、攻撃者はその事実を利用して攻撃しています。
攻撃者は、侵入したウェブサイトやサービスからユーザー名とパスワードを集めれば(インターネット上にある多くのブラックマーケットサイトで容易に入手可能)、他のサイトでも同じ認証情報を利用してログインできる可能性があるということを知っています。メール、銀行口座、お気に入りのスポーツフォーラムなどで認証情報を再利用したくても、フォーラムがいつかハッキングされ、攻撃者が容易にメールや銀行口座にアクセスできてしまう可能性があります。認証情報に関しては、同じものを使わないということが重要です。パスワードマネージャーというものがあり、利用するさまざまな認証情報を管理するのに非常に役立ちます。
これは一般的な攻撃タイプとテクニックの一部にすぎません(ウェブアプリケーションの脆弱性に関する詳細については、このリンクをクリックしてください)。これはすべての攻撃を網羅するものではなく、また攻撃者も必要に応じて新たな方法を開発するなど進化を続けています。しかし、これらの攻撃タイプを認識し、脅威を軽減することで、セキュリティ態勢が大幅に改善されます。