企業のWebサイトを狙ったサイバー攻撃が後を絶たない。攻撃の手口は常に進化し、対策は常に後追いのように見えてくる。しかし、本当にそうなのだろうか? Webセキュリティの第一人者である徳丸浩氏に、開発者や発注者、そしてエンドユーザーに突き付けられた課題とその対策について、特に2017年前半に浮き上がってきた事例について語ってもらった。3回目となる本記事では事例を解説しながら、具体的な対策について語ってもらった。
2017年3月、Struts2の脆弱性によって、GMOペイメントゲートウェイ(以下、GMO-PG)のサイトが攻撃され、カード情報が流出するという事件が起きました。今回は、この事件がセキュリティ対策によって防ぐことはできたのか? 防ぐことができるとすれば、どういった対策があるのか? ということについてお聞きしたいと思います。
GMO-PGのカード情報流出事例は防ぐのが難しい
徳丸 GMO-PGの事例を時系列でまとめてみました(表1)。私はGMO-PGに同情的なんです。というのも、GMO-PGは、かなり素早い対応をされているのです。正式アナウンスのメールやWebサイト更新は3月8日の夜の21時ごろです。ところが、被害を受けたのは3月8日の早朝です。これは絶対に間に合わないですね。
3月6日 19時 | 今回、攻撃の対象になった脆弱性「S2-045」のアドバイザリー公開、修正バージョンが「dev」リポジトリにUPされる |
---|---|
3月7日 21時ごろ | 修正バージョンが 「dev」 から「release」に移される |
3月8日 早朝 | 東京都税クレジットカード支払いサイトおよび団体信用生命保険特約料のクレジットカード支払いサイト(以下、両サイト)に不正アクセス(後に判明) |
3月8日 午後 | IPAから注意喚起 |
3月8日 21時ごろ | 正式アナウンスのメール、Webサイト更新 |
3月9日 午前 | JPCERT/CCから注意喚起 |
3月9日 18時 | GMO-PGにてS2-045を把握、対象サイトの洗い出しを開始 |
3月9日 20時 | 対象となるシステムの洗い出しが完了、対策方法の検討開始 |
3月9日 21時56分 | WAFにシグネチャを設定 |
3月9日 23時53分 | 不正アクセスの痕跡を確認したため「Apache Struts2」が稼働しているシステムを全停止。ネットワーク未接続状態にあったバックアップシステムに切り替え |
3月10日 0時30分 | 両サイトにおいて不正アクセスを確認 |
3月10日 2時15分 | 両サイトにおいて不正にデータ取得された可能性が高いことを確認 |
正式な脆弱性情報が公開される前に被害を受けていた、ということですね。
徳丸 GitHub(ギットハブ)というソフトウエアを管理するサイトがあります。そこでStruts2の修正バージョンが6日の19時に上がって、翌日の21時に「release」に移ったのですが、アナウンスはありませんでした。GitHubを見張っていれば、ああ、バージョンアップがあったなと分かるわけですが、普通そこまで見ないですよね。バージョンアップなどの情報を確認するために、正規のWebサイトを見張っているというのは、熱心な方でしょう。正規のサイトで情報が更新されないうちにGitHubの方が更新されていたということです。
狙う側はそういうのをずっと見ているわけです。見つけたら「おお、新しいのが出たぞ、きっと脆弱性に違いない」と思う。このジャンルは中国が非常に進んでいまして、別に悪い人たちだとは限らないと思いますが、Struts2の情報は大半が中国語です。セキュリティ専門家には英語もだけど中国語も必要だ、という冗談みたいな話があるくらいです。私も中国語は分からないのでGoogle翻訳で一所懸命に読むわけです。で、「もう攻撃コードが出ている」となるわけですね。
そういうのが6日から7日にかけて起こっていて、このタイミングで日本のセキュリティ専門家たちもザワザワしているわけですよ。「おお、もう出ているぞ」と。でも、正式のアナウンスはないという状態で、IPA(独立行政法人情報処理推進機構)が8日の午後に情報を出しました。一般的にIPAは遅く、従来は5日から1週間くらいかかっていました。それが正式アナウンスの前に出たというのはそうとう早いのですが、それでも間に合っていない。
JPCERT/CC(JPCERTコーディネーションセンター)に移されて、それでGMO-PGは9日の夕方から状況を把握して対処していたのですが、惜しいことにはもう被害を受けた後でした。ただ、この話、いろいろなところでしているのですが、「じゃあ皆さんこれより早くやる自信ありますか」というと、「それはできない」となるわけです。
そうかと思えば、ぴあや国土交通省がやられたのはずっと後で、対処する時間はあった。頑張れば防げたのにというサイトがいっぱいあるわけですね。