暇人の英語雑記ブログ

DoS攻撃の仕組みを超簡単に説明するとこうなる

2019.09.032018.05.14その他・雑記

DoS攻撃の概要を専門用語を使用せず、コンピュータの素人でも理解できるよう超簡単に説明してみたいと思います。

正しく理解するために、とりあえずインターネットの仕組みのおさらいから始めます。

補足
単純に DoS だけを知りたい方はこちらからどうぞ。

ただし HTTP の要点をざっくりと知っておくと、DoS攻撃 に対する理解がさらに深まります。

サルでもわかる HTTP の簡単説明

http
画像:How the Web Works

上の図の右側に位置するパソコンはあなたのものと仮定します。

左側のものはあなたが見たいと思っている Webサイトのデータを保持するサーバです。

あなたはインターネットを使用するために、ブラウザを開きます。

browsers
画像:Your Say: Microsoft Edge Won’t Replace Google Chrome, Firefox on Day 1

ブラウザ自体はいつも使用しているのに「ブラウザ」という名称を知らない方がたまにいますが、これはあなたがインターネットに接続するために使用しているアプリケーションです。

パソコンのであれば Internet Explorer (Edge) や Chrome、Firefox あたりが皆さんが使用しているものでしょう。

safari

iPhone の場合は Safari のはずです。

これらのアプリケーションをブラウザといいます。

もう少し深く説明すると、ブラウザは HTTP というプロトコルを使用してデータのやり取りをするツールです。

プロトコルとはルールのようなものだと思ってもらえればいいでしょう。

じゃんけんにおいては「パー」は「グー」に勝ち、「グー」は「チョキ」に勝ち、「チョキ」は「パー」に勝つというルールが存在します。

そのルールが全ての人の間で共通化されていないと、じゃんけんは成り立ちません。

同様に、コンピュータ間もルールが存在しないとお互いに通信が成り立ちません。

そのルールのことをプロトコルといいます。

つまり上の図で示したように、あなたの使用しているブラウザとデータを保持しているサーバの間で通信上の取り決めごとが必要になるわけですが、それをプロトコルというのです。

インターネット上で使用するプロトコルは HTTP だけではなく SSH、FTP やそれ以外にも数多く存在しますが、現在インターネット空間におけるやり取りのかなりの部分を HTTP が占めており、インターネットと HTTP が同義語かのように扱われています。

さて、あなたはドナルド・トランプ氏関連の記事を読みたいと思い、インターネット上に存在するドナルド・トランプ氏の頭はおかしくない – 彼の演説の趣旨を整理してみるというリンクをクリックします。

そのリンクには https://eigo-shutoku.com/donald-trump-is-not-insane/ という文字列が割り当てられています。

左端にあるのが、まさしく上で説明したプロトコル http です。

https

https と s が付いてますが、これは SSL通信という、やり取りするデータを暗号化するセキュリティプロトコルです。

https で通信することにより、中間者攻撃によって盗聴被害を受けても、あなたのやり取りしたデータは単なる暗号文なので攻撃者に内容が漏れる可能性はほぼゼロです。

全てのページを https にする必要性はありませが、重要な情報を送信するページにおいては https でやり取りしてしかるべきです。

補足
たまにログイン画面で https が使用されていないサイトが存在しますが、パスワードが盗聴される可能性があるという問題のみならず、そもそもセキュリティに関して極めて無頓着な証拠ですので、そういった Webサービスは始めから利用しないことをオススメします。

話を戻します。

https 以下の //eigo-shutoku.com/donald-trump-is-not-insane/ は何かと言うと、そのお目当てのデータが存在するインターネット上の住所のようなものと考えてください。

そして実際に Webページのリンクをクリックすることにより裏で以下のようなアクションが発生します。

  1. ブラウザ:このページのデータをください!
  2. サーバ:このデータですね!いま送信します!
  3. ブラウザ:データ受け取りました!ありがとうございました!
  4. ブラウザ:人間が見やすいようにデータを組み立てなくっちゃ!

①のアクションを「リクエスト」と言います。

②のアクションを「リスポンス」と言います。

③で皆さんの手元のパソコンまたはスマホ等にデータが届いた状態となります。ただしそのデータはコンピュータに理解できるコードの塊であって、私たちユーザにはとても読めたものではありません。

そこで④にあるようにブラウザは皆さんのために、これらデータを見やすい形に組み立ててくれるのです。

そしてこの完成形こそが、まさしくあなたがブラウザ上で見ているページそのものなのです。

context-menu-source

ちなみにキレイに組み立てられたページではなく、サーバから送信されてきた生のデータは見ることができます。

パソコンを使用している方はページ上で右クリックをしてみてください。

そこに表示された「ページのソースを表示」という部分をクリックするとゴチャゴチャとした文字列が表示されるでしょう。これがサーバが送信してきた生データです。

キレイに組み立ててくれるブラウザに感謝ですね。

DoS攻撃はリクエストの大量送信

ddos
画像:DDoS Attack on DNS; Major sites including GitHub PSN, Twitter Suffering Outage

本題に入ります。

先ほどからネット空間でやり取りする情報のことをデータと言っていましたが、このデータのことをネットワークの専門用語ではパケットと言います。

DoS攻撃とは単純に言ってしまうと、標的であるサーバが処理できる以上のパケットを一度に大量送信することにより、そのサーバをダウン (機能不全) させることです。

聖徳太子は10人の人たちから一度に話しかけられ、それらを全てを理解したという伝説がありますが、単なる伝説でしょう。

人が一度に行えるアクションには限りがあります。それと同様にコンピュータが一度に処理できることにも限界があります。

例えばパソコン上でブラウザ、Microsoft Word、LINE、Skype など様々なアプリケーションを一度に立ち上げ使用するとパソコンの動作が停止してしまうことがあります。

これは以下のように表現できます。

pc-crying
こんなにたくさんの処理を一度に実行できないよ!

つまりコンピュータがあっぷあっぷしている状態ですね。

サーバがダウンするというのも同様の現象です。

「サイバー攻撃」というと難しく聞こえてしまいますが、DoS攻撃はパソコンの素人でも疑似的に実行することができます。つまり標的とするサーバに対してリクエストという形でパケットを連続送信すればいいだけの話なのです。

f5
画像:Life Lessons I Learned from a Computer Keyboard

キーボードの上部に「F5」というボタンが存在します。

これはページ更新のボタンなので、ブラウザ上で実行すると現在表示しているページの再リクエストをサーバに対して送信します。

つまり、F5を連続で押し続けると短時間で多くのパケットを送信できるのです。

これをF5攻撃と言います。一番原始的なサイバー攻撃とも言えるでしょう。

もちろんあなたがどれだけ頑張っても、ひとりで送信できるパケット量には限界がありますので、この手法でサーバをダウンさせることは不可能でしょう。

ただし、例えばインターネットの掲示板などで、

●日の●時●分に×××を攻撃しようぜ!
cat-icon

などという約束事を万単位の人たちに呼びかけて実行すると、ネットワークの規模にもよりますがダウンさせることができる可能性があります。

簡単に言ってしまうと、DoS攻撃とはサーバをダウンさせることそのものが目的のインターネット空間での一種の嫌がらせ行為です。

DoS とは Denial of Service Attack (サービス妨害攻撃) の省略です。

DDoS攻撃は世界中からの分散型攻撃

DoS の一番単純な方法が上記した F5攻撃ですが、ハッカーなどプログラムを自分で作成できる人たちはそのような幼稚で面倒なことはしません。

ウィルスを作成し世界中のコンピュータに感染させるという形で自身の配下に置き、クリックひとつで一斉に攻撃を仕掛けることができる仕組みを構築してしまうのです。

このような形でハッカーの配下に置かれたコンピュータをボットまたはゾンビコンピュータと言います。

ボットとはロボットの省略です。

そしてこのようにして組み立てられた巨大なネットワークをボットネットと言います。

そしてこのように世界中に分散された数多くのコンピュータから一斉に DoS攻撃を仕掛けることを 「DDoS攻撃」と言います。

DDoS とは Distributed Denial of Service Attack (分散型サービス妨害攻撃) の省略です。

補足
DoS攻撃の手法としては SYN floodUDP flood など複数ありますが、話が専門的になってしまうのでここでは区別しません。

DoS攻撃のような現象はあなたも経験済み

iphone-tv

実はコンピュータに詳しくない人たちも含め、DoS攻撃のような現象は皆さんすでに経験済みです。

例えば、夜の情報番組などで自身に関心のあるオシャレなショップが紹介されていたとします。

気になったあなたはすぐにスマホでそのお店のサイトにアクセスすることでしょう。

するとさすがにテレビで放送されたということだけあり、一時的にアクセスが集中し Webページがなかなか開かなかったりします。

これは上で説明したとおり、大量のパケットが一斉送信されサーバが対応しきれていない状態なので、言ってしまえば DoS攻撃を受けているのと同じ現象です。

もちろんあなたを含め多くの人たちは「そのページが見たい」という正当な目的があり、嫌がらせ行為ではないので後日警察から家宅捜索を受けるということはありません。

DoSツールは無料でダウンロード可能

DoS攻撃ツールはインターネット内で無料ダウンロードが可能です。

ですが悪用は厳禁です。

攻撃するのであれば自身が構築したサーバに限定してください。

以上のツールは LOIC と呼ばれるもので、本来はネットワーク負荷テストツールです。

このアプリケーションには Hive mode という機能が存在し、これを使用すると世界中で LOIC を使用しているユーザのコンピュータを集約し DDoS攻撃を仕掛けることが可能となります。

DoS攻撃は対象とする Webサービスを一時的にアクセス不可にするという嫌がらせが基本ですので人命被害が出ることは考えにくいです。

ただし、だからと言って何も考えずに実行すると重大な結果を招くので注意してください。

ほとんど管理されておらず、誰も閲覧していないような放置されているブログなどであれば、サイトがダウンしたところで目に見える被害というのは存在しないかもしれませんが、仮にインターネット上で商品売買を行っているような大手サイトをダウンさせた場合以下のような被害が発生します。

  • サイトの信用性が下がる
  • 運営企業の株価が下落
  • ビジネスチャンスの喪失

結果として逮捕された場合には、とてつもない額の損害賠償請求を受けることになります。

あなたが大学生であれば退学するハメになるでしょう。会社員であれば解雇処分です。

絶対に他人のサーバに向けて DoS攻撃を仕掛けてはいけません。

軽い気持ちで実行したとしても、あなたは人生を棒に振ることになるでしょう!!

DoS攻撃の仕組みをもう少しだけ詳しく知りたいあなたには、以下の書籍をオススメします。

アマゾン商品データの取得に失敗しました

author