Docker

今回はちょっと変化球的なネタになります。

実は擬似的にDDoSトラフィックが必要になり、簡単にさくっとできる方法がないか悩んでました。最初は仮想環境でVMをたくさん作っていたのですが、起動や停止が面倒でいろいろ考えていたところ、Dockerを利用することを思いつきました。ちょうどAIもDockerでAuto Scalingしたり、その他いろいろチャレンジしていたこともあり、その流れでDocker利用を思いつきました。 DDoS攻撃をシュミレーションするには面白い結果になりましたので、Dockerの活用方法の1例としてご紹介します。

Dockerの環境を解説する前にまずはアンプ・リフレクション攻撃について解説します。

アンプというのは増幅ということで、小さいものを大きくすることです。DDoS攻撃でDNSアンプ攻撃と呼ばれるのは、DNSのリクエストとレスポンスでは送信されるパケットサイズがリクエストよりレスポンスが大きくなるためそのような攻撃名で呼ばれます。攻撃者にとって、攻撃者から送信するトラフィックが少なく、攻撃先により大きなトラフィックで送信できると都合が良いため、リクエストとレスポンスのサイズ差が大きくなるようなプロトコルが選ばれます。

もう一つのキーワード、リフレクションは反射ということを意味、斜めから壁にボールぶつけるように直接、攻撃先にトラフィックを送りつけるのではなく、あるものを利用してそこからトラフィックを送りつけることになります。絵で表現した方が分かりやすいと思いますのでアンプ・リフレクション攻撃のイメージを書いてみます。

Reflection Amp Attack

この絵の真ん中で反射させているものがOpen Reflectorと呼ばれますが、DNS、NTP、SSDPなどUDP上で動作するサーバで本来であればアクセスできるユーザーを制限して、不正に利用できないようにしないといけないのですが、誰でも利用できる状態で攻撃の道具として使われてしまいます。またOpen Reflectorの数が多ければ多いほど攻撃力をあげることができます。
そこでDockerで以下のようなDDoSの検証環境を構築してみました。

DDoS Docker Containers

攻撃者のコンテナとOpen Refletorのコンテナ、そして攻撃先のWebコンテナから構成される環境になります。
この環境をdocker-composeでそれぞれのイメージを指定して、docker-compose up -dを実行するとさくっと環境が立ち上がります。

では、次回はどのようにDockerを構築したのか技術的な詳細をご紹介します!

 

関連リンク