現在解説しているテーマ「読解力のトビラ」の最後にあたる今回は、「DoS攻撃」について解説させていただきます。

著者プロフィール

辻 伸弘氏(Tsuji Nobuhiro) - ソフトバンク・テクノロジー株式会社


セキュリティエンジニアとして、主にペネトレーション検査などに従事している。民間企業、官公庁問わず多くの検査実績を持つ。

また、アノニマスの一面からみ見えるようなハクティビズムやセキュリティ事故などによる情勢の調査分析なども行っている。趣味として、自宅でのハニーポット運用、IDSによる監視などを行う。

Twitter: @ntsuji

DoS攻撃とは

「DoS」とは「Denial of Service」の略で直訳すると「サービス拒否」となります。セキュリティの解説記事などでは、分かりやすさを重視して、「サービス不能」や「サービス運用妨害」と呼ばれることもあります。

皆さんもテレビやネットのニュースなどで「●●のサイトが一時閲覧しずらい状態になりました。」といったようなフレーズを聞いたことがあるのではないでしょうか。

その原因の1つがこのDoS攻撃です。

DoS攻撃というと皆さんはどのような手法であるとイメージするでしょうか。

多くの報道では前述したフレーズに加えて「大量のアクセスがあり」や「アクセスが集中し」といったフレーズが付くことから、「DoS攻撃 = 大量の通信を発生させる攻撃」というイメージを持ってらっしゃる方が多いように感じられます。セキュリティの仕事を通じて色々な方と接する中でもそのようなイメージを持っている方によくお会いします。

たしかに、DoS攻撃はターゲットとなるコンピュータ(サービス)にアクセスしづらくしたり、停止させることが目的であることには違いはないのですが、その手法は大量のアクセスを行うことだけではありません。大きく分けてDoS攻撃の方法として以下のものが挙げられます。

  • (1) 大量のアクセスを行うもの
  • (2) ゆっくりアクセスを行うもの
  • (3) 脆弱性を利用するもの

1つずつ見ていきましょう。

(1) 大量のアクセスを行うもの

これが一番分かりやすいかと思います。

攻撃元のコンピュータから大量の通信をターゲットに向けて行うものです。

大量のアクセスを行うことによりターゲットのコンピュータのリソースや回線がひっ迫し、結果、ウェブサイトのコンテンツの表示が遅くなったり、最悪接続すらできなくなるわけです。

例えていうと、デパートなどの入り口にショッピングなどの正規の目的のない方々が大量に並び始めるようなものです。ショッピングなどの目的を持って来店した方がなかなか入れなくなったり、待つことを諦めて帰ってしまったりするため、デパートとしては迷惑極まりない行為と言えるでしょう。

これを沢山のコンピュータを用いて行う場合は、DoSとは呼ばず、頭にDを付け加えて、DDoS(Distributed Denial of Service : 分散型サービス拒否)攻撃と呼びわけることがあります。

国際的抗議集団アノニマスなどがこのようなパターンの攻撃を用いる場合があります。攻撃を行いターゲットにダメージを与えることも目的であるとも言えますが、そういった攻撃を行うことで多くの人の注意を引き、自分たちの主義主張を知ってもらうきっかけを作るという目的もあると言えます。

DoS攻撃の代表的ツール「LOIC」(左)と「HOIC」

サーバ側に設定不備や脆弱性(セキュリティ上の弱点、ソフトウェアの欠陥)がなくとも通信量さえ増やすことができれば成功する攻撃です。

対応策としては、サーバと回線を共に増強するというものになります。

単純な物量作戦には単純な物量作戦で対応するしかないというわけです。

(2) ゆっくりアクセスを行うもの

こちらは前述した「大量のアクセスを行うもの」とは違い、それほど大量の通信を必要とはしません。ただし、すべてのWebサーバに通用するというものではありません。もう少し言うと、攻撃が成功するかどうかについては、設定内容やネットワークの構成次第ということになります。

この攻撃はWebサーバに対してゆっくりといくつかの接続を行い、接続数を増やすことでWebサーバの対応できる接続数を埋めてしまうというものです。この手法を用いれば1台のコンピュータからの通信でアクセスしづらい状態、最悪の場合にはダウンまで持ち込まれてしまう場合があります。

この攻撃を行うソフトウェアとして代表的なものとしては「Slowloris」があります。

Slowlorisの実行例

対策としてはこの攻撃の影響を受けない設定を施すか、この攻撃の影響を受けないコンピュータを配置し、Webサーバへのアクセスはそのコンピュータを経由させるようにするというものがあります。

(3) 脆弱性を利用するもの

これは、その名のとおり、脆弱性を利用するものです。

実現する方法としてはいくつかあるのですが、例えば、数字のみを扱うことを想定しているソフトウェアに文字を送信したりすることで、そのソフトウェアをクラッシュ(強制終了)させてしまうというものです。イメージとしては普段、みなさんがコンピュータを使っているときにふいにクラッシュする場合があると思いますが、あのような状態を外部から意図的に発生させるようなものです。(皆さんが日々遭遇するクラッシュすべてが外部から起こされたものであるという意味ではありません。)

人間に例えて言うと、(1)の大量のアクセスを行うDoSが1人ないしは複数で1人に向かってに聞き取れないほどの早口で一方的に話しかけるのに対して、こちらは日本語しか理解できない人にわざと、いきなり英語で話しかけ、思考をさせないようにしたり、あたふたと混乱させるようなイメージでしょうか。

(D)DoS対策として様々な製品が世の中にはあります。

それらの多くは、サーバよりも前、つまりインターネット寄りに配置することで(D)DoSに対抗しようというものです。これらの製品は、(2)や(3)については効果を発揮すると考えられますが、(1)のようなタイプのものですと、回線もセットで対抗しなければきちんと対策ができたとは言えません。建物の入り口を大きくして、優秀な門番を配置したとしても肝心の建物の前の道が狭ければ、多く人が押し寄せてきたときに人が溢れかえり結局DoS状態になってしまうということです。

あと、これはそもそもなのですが(D)DoS攻撃をされることが自組織にとって脅威かどうかということを考えておく必要があるでしょう。

例えば、Webサイトそのもので収益を上げている場合、(D)DoS攻撃を行われると売上に直接影響するため大きな脅威であると考えらますが、単純に自組織の紹介ページなどですと直接的な金銭的被害はないと判断できるため、最悪、閲覧できなくなったとしても、放っておけばいつかは(D)DoS攻撃が終わるので、それを待つというのも1つの手だと思います。実際に筆者が話を聞いた現場の方のコメントでも「放っておけば終わりますから。いつものことです。」というものがありました。

どのような脅威も自分や自組織においてどの程度の脅威であるかということをしっかりと考えることは大切だと思います。

さて、DoS攻撃と言っても色々なものがあるということがお分かりいただけましたでしょうか。どちらかというとDoSはサービスを使えなくするという目的を指し、その目的を達成するためには様々な手法を用いたDoS攻撃が存在すると理解していただければと思います。

そういったことを踏まえ、この記事が自分や自組織に合った対策を講じる皆さんの一助になれば幸いです。