今年も始まったOpKillingBay
毎年9月1日は、和歌山県太地町でのイルカ追い込み漁の解禁日ですが、この漁に抗議する目的で、Anonymousによる「OpKillingBay」が展開されます。
以下のURLで、ターゲットリストが公開されていますが、単なるURLの羅列ではなく、ポートスキャンの結果も掲載されています。
- OpKillingBayのターゲットリスト
- http://hastebin.com/raw/jowewomuse
ターゲットリストを見ると、「日本政府および太地町関連の自治体」「鯨類の輸送業者」「その他追加ターゲット」というような分類になっています。しかし実際の攻撃は、ターゲットリストにない団体のWebサイトにも及んでいます。
- OpKillingBay 2016および、OpWhales、OpSeaWorld メモ((n)inja csirt)
- http://csirt.ninja/?p=824
上記サイトには、「被害を受けたところの大半は、DoS/DDoSによりダウンさせられているが、少数の情報窃取もある」という記述があり、「やれる攻撃をやっている」というようにも取れます。
情報窃取は、Webアプリケーションを検査したり、使用しているソフトウエアの脆弱性を日々確認して、危険な脆弱性が発見されたら早期に対処することで、影響を最小限に留めることが可能ですが、多くのサイトが被害にあっているDoS/DDoSはどういう性質のものなのか、について少し説明します。
DoS/DDoSを引き起こす仕組み~大半は普通のアクセスに見せかけた通信を大量に送りつける形の攻撃だが、アプリケーションの脆弱性を突くものも存在する
DoS/DDoSの原則は、大量のデータ、もしくは脆弱性を悪用するデータを攻撃対象に送りつけ、「① 攻撃対象で一般ユーザからの要求を処理しきれない状態にする」「② 攻撃対象で一般ユーザからの要求を処理できない状態にする」、もしくは「③ 攻撃対象まで一般ユーザのデータを送り届けるのが困難な状況を作り出す」ことです。
多くの一般ユーザから見たら、攻撃対象となったコンピュータに外部から接続できないように見えるのですが、攻撃対象側に起こっている事象は攻撃のタイプによって大きく異なります。
- ①:攻撃対象は動作しているが、リクエストを受け付けるコンピュータの負荷が非常に高くなる傾向
このケースの場合、運用側が気付くトリガは、サービスを提供するのに必要なコンピュータが高負荷になっているという事象の発生であり、システムの負荷をモニタしていれば異常に気がつくことが多い(WANの帯域はそんなに逼迫しない)。この場合、攻撃が仕掛けられたシステムでは、「攻撃対象で一般ユーザからの要求を処理しきれない状態」が続く。
- ②:攻撃対象のサービスプログラム、もしくはサービスを提供するのに必要なコンピュータが異常終了する傾向
この場合、運用側が気付くトリガは、コンピュータ上で動作すべきプログラムもしくはコンピュータが異常終了している事象の発生であり、システムの動作状況をモニタしていれば異常に気がつくことが多い(WANの帯域はそんなに逼迫しない)。攻撃が仕掛けられたシステムでは、「攻撃対象で一般ユーザからの要求を処理できない状態」が続く。異常終了したプログラムやコンピュータを再起動すれば、要求を処理できる状態に復帰することが多いが、異常終了した原因を特定せずに再起動しても、またすぐにプログラムやコンピュータを異常終了させられる可能性がある。
- ③:ネットワークの使用率が非常に高くなっている、もしくはサービス提供を行うコンピュータのいずれかが、多くの接続(許可している接続の上限まで達する)を受け付けている事象
多くの場合、コンピュータは正常に動作しているが、攻撃トラフィックの影響で、最大でWANの帯域使用率が100%に近くなる。もしくは、コンピュータ側の接続数上限に達している。
①②は、多くの場合は脆弱性がトリガになって引き起こされます(岡崎図書館事件[1]のように、システムの「仕様」がトリガになったケースもあります)。
脆弱性を突く攻撃は、脆弱性を塞ぐなりして、脆弱性をトリガできないようにしてしまえば基本的には対処可能なのですが、(3)はシステム単体での対処が難しく、「(a) インターネット接続を提供するISP側で攻撃トラフィックをブロックする」や、「(b) 攻撃を受けている以外のネットワークに攻撃トラフィックを逃がす」など、他のネットワーク運営者の協力が必要になります。
DoSを引き起こす脆弱性とは?~CVSS値の評価時に、Availability(可用性)に影響があるとされるものや、CPU/メモリを異常に消費させられる脆弱性
脆弱性をトリガにしたDoS攻撃の話を先に述べましたが、このような攻撃が仕掛けられる場合、具体的には攻撃対象に存在する、高負荷の発生につながったり、攻撃対象のプログラム等を異常終了させるような脆弱性が突かれます。
たとえば、最近公開された脆弱性のうち、「JVNDB-2016-003491 Apache HTTP Server におけるサービス運用妨害 (DoS) の脆弱性[2]」などがこの類の脆弱性にあたります。以前から知られている類の脆弱性に、hashdos[3]と呼ばれるものがありますが、この脆弱性が存在する場合もDoSのトリガとなりえます。
DDoSが引き起こされる時に何が発生しているか?~さばききれないトラフィックの到達
DDoSが引き起こされる時には、典型的には何らかの方法で攻撃者により生成されたトラフィックが、攻撃対象に至るまでの通信路を埋め尽くされていることが多いように見られます。
最近、KrebsonSecurityというblogがDDoS攻撃に晒されました[4]が、このときに発生した攻撃トラフィックは、数百Gbpsというものでした。こんなトラフィックが、普通の1Gbpsや10Gbpsの回線で接続されたサイトに向けられた場合、サイトに至る回線はほぼ攻撃トラフィックで埋め尽くされます。
このような攻撃が向けられたら困る場合、ISP側の協力を得て対応するか、あらかじめDDoSを緩和するサービスを契約する[5]のが通常です。
とはいえ、通常はこんなところまで対処できるサイトも限られるため、攻撃されてしまったサイトは別の告知手段(例:Twitterの公式アカウントを利用)を用いて、現状を伝えるのがベターといえそうです。
DDoSは本質的に防ぐのが難しいが、できることは0ではない
脆弱性をなんとかすれば無効化できることも多いDoS攻撃と比べ、DDoS攻撃は、大量の通信を攻撃対象に向けるだけで引き起こすことが可能です。攻撃トラフィックを発生させるしくみは非常に単純である上に、ボットネットなどの攻撃用インフラから攻撃トラフィックが発生することも多く、完全に防ぐのが非常に難しい攻撃です。
このため、DDoS攻撃を向けられてしまった場合、被害を受けた側ができることは
非常に限られます。
とはいえ、できることが0というわけではないので、なってしまったときの対処を考えておくのが良いと言えます。
DDoSを発生させること、加担することは犯罪~手軽だからと言ってやらないように
DDoSは防ぎづらいと言いましたが、DDoSを発生させること、そしてDDoS攻撃に加担することは、立派な犯罪です。やりやすいからといって気軽に実行すると、相応の罰を受けることにもつながりますので、決してそのようなことをしないでください。