Scribble at 2023-10-13 16:36:40 Last modified: 2023-10-13 16:40:57

添付画像

How AWS protects customers from DDoS events

既に何ヶ月も前から事例としてあったらしいが、「HTTP/2 リセット攻撃」と呼ばれている大量のリクエストを使った DDoS の話らしい。ただ、単純な DDoS であれば送信元の IP アドレスを次々とブロックすればいいわけだが、リクエストとリクエストのキャンセルとを大量に送りつけることで、サーバ側がログを記録する処理だけで圧倒されてしまう事態に至るという。そして、これがどうして HTTP/2 に特有の攻撃になっているのかというと(実際、これの「対策」として単純に HTTP/2 のサポートを Apache などで止めたら良いと書かれている)、HTTP/2 では「ストリーム」と呼ばれる処理の単位に分割して、単一の接続において複数のストリームを確立して処理できるという効率化を図っている。ただし、これは攻撃する側にとっても効率化となり、リクエストを送った直後に RST_STREAM というフレームを送信することで接続を保ったままリクエストをキャンセルできてしまう。このため、接続を維持したままで無制限のリクエストを投げつけるという攻撃が可能になるというわけだ。

もちろん、これは仕様バグであるため、HTTP/2 を無効にするか、個別に IP アドレスをブロックしていくという、どちらにしても相当に乱暴な方法でしか対処できないわけだが、逆に言えばシンプルに対応できるとも言える。そもそも、当社にしてもそうだが、HTTP なんてステータス・コードの意味すら分かっていない社員が大半であるし(現実には、デジタル・ネイティブだろうとジジイだろうと、大半の素人や凡人なんて、404 すら分からない、つまりエラー・ページの英語が分からないし調べる気もないという人が大半だろう)、HTTP/3 どころか HTTP/2 ですら既に実装可能であるとか、どういう違いがあるのかも知らないし興味がないという人が、ネット・ベンチャーの社員でも圧倒的に多い。よって、これを無効にしたところでサイトのパフォーマンスに影響がある規模のサービスなんてさほど多くないし、HTTP/2 なんて当分は(いや、実際には永遠に)殆どの会社にとって誰かがどうにかしていればいいような話でしかないだろう。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook