年末年始にかけて、結構重要なセキュリティーのニュースがあった。

一つは、ハッシュアルゴリズムの問題。
http://www.atmarkit.co.jp/news/201201/06/hashdos.html
ちなみに、先日の緊急WindowsUpdateもこれの対応。

多くのプログラム言語では連想配列と呼ばれる仕組みを持っている。
今回のは、その連想配列でよく使われるアルゴリズムを実装するときに使われる、
ハッシュアルゴリズムの脆弱性。

この脆弱性を利用すると、たとえば、Webサイトならば、
Webのリクエストは、連想配列で受け取るプログラム言語は多い。
そこに、あえて全てのキーが衝突する、大きなリクエストを投げると、
1リクエストであっても、CPU占有率を、長時間、100%にすることが可能だそうな。

それにより、Webサイトの閲覧を困難にしたり、
Webサイトのサーバーをダウンさせたり可能とか。

解決方法は、サーバープログラムや各プログラム言語を最新の物に変えるという事で解決できる。

あるいは、急場しのぎであれば、
Webサーバーならファイルのアップロードなどをしないサーバーに限定だけど、
POSTやGETできるデータサイズを必要最低限のサイズにすれば、
当面はしのぐことが可能である。

もう一つの脆弱性は、
Webサイトへのリクエストに対するレスポンスの受け取りを、
あえて、ゆっくり行うという物。
参考記事→この辺

今まで、DDos攻撃と呼ばれている物は、スーパーのレジでたとえるなら、
大量の人で、レジに押しかけて、
会計中に何も言わずに、その場を離れる様な行為。
気を取り直して「次にお待ちの方ー」といって次の人を呼ぶけれど、
次の人もやっぱり、支払いの段でいきなりその場を離れる。
レジの担当は忙しいけど、売り上げにもならず、
まともに買い物に来た人は、会計が出来るまで待たされる・・・そんな妨害する攻撃だった。

でも、この手の攻撃は、検知ツールを使えば、
「レジが忙しいのに売り上げが立ってない」ということを検知したり
「同じ人が何度も来ている」事を検知して、
攻撃者の入店のお断りをする事が出来る。

一方で、今回指摘された脆弱性は、
レジで、支払いの際に、「えっと、会計が1980円だから・・・
1円玉が10枚財布にありそう・・・あ、あった、
んで、5円玉が・・・1枚・・・2枚・・・3枚・・・あれ・・・あ~4枚無いや・・・(以下略)」
と、後ろに人が並んでいることを気にせずに、
出来るだけゆっくり会計する・・・といった攻撃方法。

攻撃検知ツールを使っていても、
この支払いをしている人は、何度も来ているわけではなく、
また、単に気配りが出来ない善良な人なのかも知れないので、
つまみ出すわけにも行かず・・・

といった、なかなか難儀な脆弱性だ。

それにしても、こう言う攻撃を考える人は頭やわらかいなぁ・・・