2016年7月12日8:00
さまざまな措置で防げていた日本年金機構の事案
今回、日本年金機構の事案では一太郎の脆弱性が利用されているわけですが、すでに2014年にシマンテックが、日本を標的にした攻撃が行われているということを言っています。Emdiviが感染したのですが、Emdiviそのものは一太郎の脆弱性をついた攻撃だったということで、今回の攻撃が、ゼロデイ攻撃であったかが問題になります。
実は2014年11月13日に、一太郎の製造元のジャストシステムが脆弱性の存在を公表しています。メーカーが脆弱性を公表するということは、その時点で修正プログラムが配布できる状態になっていることを意味します。ですから、この時点で年金機構が一太郎に修正パッチを当てていれば、担当者が添付ファイルを開いても感染しなかったといえます。その意味では、年金機構の事案も、基本的に繰り返し言われている更新プログラムを確実に当てていなかったことに起因しています。
仮にこの事案が本当にゼロデイ攻撃だったとしても、Microsoftが配布しているEMET(Enhanced Mitigation Experience Toolkit)というツールを起動していれば、ウィルスは動作しません。それから、Windows7以降であればAppLockerという仕組みが無償配布されています。こういった、事前許可がなければプログラムが動かない、いわゆるホワイトリストの仕組みが採用されていれば、年金機構の事案も起こらなかったと言えると思います。
アンチウルス技術の変遷と日本の弱点
アンチウィルスの仕組み自体、従来のブラックリストが限界だということで、今、Sand Boxがもてはやされていますが、Sand Boxは別に高度な技術ではなく、いわゆる仮想パソコンで一度添付ファイルを開いてみるというものです。しかし、ウィルスもどんどん進化しており、自分が検査されているということを見抜いてしまいます。
例えば、5秒間じっとしているとSand Box的にはセーフだということで、パスしてしまうケースも過去にありました。Sand Boxにはマウスやキーボードはついていないため、非常に不自然だということで、自分が検査されていることがわかります。それからウィルスはデスクトップを見ます。Sand Boxの場合はデスクトップに何もないので、自分が検査されていることを見抜いてしまうのです。
そこで、フルエミュレーションを行おうというのが次世代型のSand Boxです。わざとキーボードを叩いたり、マウスを動かしたり、デスクトップを散らかしたりして、いかにも人が使っているパソコンに見せかけるのが第二世代Sand Boxなのです。ところがいずれにしても、私たち日本人の場合は日本語OSを使っています。ウィルスが言語判定をすると英語のOSで返ってきますが、日本のオフィス環境で英語OSを使っている人は極めて少ないでしょうから、ウィルス的には日本を標的にしたすり抜けは簡単にできるわけです。その意味で、Sand Boxがオールマイティではない、限界があるということを知ったうえで使ってください。結果的には、いま申し上げたようなEMETやAppLockerのようなホワイトリストもどきの技術に移行していっているというのが、アンチウィルス技術の現状です。
PCI SSCが強力に推奨するトークナイゼーション
最初の話に戻りますが、カード各社が非常に強調しているのが、Devalue、要するに無価値化をやらなければならないということ、そして、その先進的な技術がいわゆるトークナイゼーションだということです。これからトークナイゼーションに取り組もうということであれば「PCI DSS Tokenization Guidelines」があります。トークナイゼーションの基本的な理解をするために、これを学習されるといいと思います。また、トークナイゼーションの実装を検討するということであれば、2015年4月に「Tokenization Product Security Guidelines」が出ています。こちらをお読みになれば、すぐさまトークナイゼーションの専門家になれると思います。
※本記事は2016年3月12日に開催された「ペイメントカード・セキュリティフォーラム2016」の公立大学法人会津大学 特任教授 山崎文明氏の講演をベースに加筆を加え、紹介しています。