GoogleAppEngine/Python の dos攻撃対策設定 dos.yaml

GoogleAppEngine/Python の dos攻撃対策設定 dos.yaml


 自作したGAE/Pサービスに、海外からコメントスパム的なアクセスが多発してしまって、私は困っていた。


▲GoogleAppEngineリソース使用料のグラフ
 今や、アクセスのほとんどがコメントスパム。コメントスパムのせいで課金が発生したりすると、非常に困るのだ。
 が、DOS対策用設定というのを見つけたので、試してみることに。


やり方


 dos.yamlというファイルを作って、弾きたいIPアドレスを記述する。

 


blacklist:

- subnet: 220.212.31.154

  description: a single IP address

- subnet: 188.143.232.202

  description: a single IP address

- subnet: 68.169.80.0/24

  description: an IPv4 subnet

- subnet: 93.36.126.187

  description: a single IP address

- subnet: 173.60.123.142

  description: a single IP address

- subnet: 195.191.55.163

  description: a single IP address

- subnet: 195.240.118.29

  description: a single IP address

- subnet: 0.1.0.2

  description: a single IP address


 個別IPを指定したり、ネットワークをまとめて指定したり出来るようだ。


 個別IPなら、「subnet:」のところに、IPアドレスをひとつ書けばOK。


 68.169.80.1 ~ 68.1.80.254を弾きたいなら、68.169.80.0/24と書けばOKだ。


 けれども、奴らはひとつのIPアドレスがガードされたら、別のIPアドレスでスパムしにくるので、結局いまいち役に立たないのだった。


まとめ


 自動防御とかしてくれるといいんだけども、対スパムや本当のDOS攻撃にはイマイチ役に立たない。無人で対応してくれる仕組みがあればいいのだが。


 結局、海外からのコメント機能を廃止し、アクセスの多いページはできるだけmemcacheでキャッシュすることでDBへのアクセスを減らして、課金対策としたのだった。


EDOS攻撃?


 クラウドで動くサービスに対しては、「EDOS攻撃」と呼ばれる、経済的なダメージを与えるDOS攻撃というのが懸念されているらしい。クラウドサービスは、使用したリソースに従って課金されるので、DOS攻撃を食らうと設定した課金上限まで課金されてしまって、無駄なお金を支払うことになってしまうというのだ。


 攻撃方法は特別なものではなく、F5連打やツールを使って連続アクセスするだけ、という単純なもの。


 もうそろそろ、そういう単純攻撃に対する画期的な防御方法が出てきてもいいのになあ、とか思いつつ、今回の覚書を終わる。


しまった! 0.1.0.2は自分自身だった


 GAEのTaskQueueで実行した処理は、IPアドレスが0.1.0.2になるらしい。というわけで、上の設定のように、ブラックリストに0.1.0.2を入れていると、タスクキューが動かなくなるので注意しよう。私は、なんだかタスクが動いてないな、と思ったら、自分で自分の処理を禁止してしまっていたのだ。失敗した。くそう。