ブログ

FFRI BLOG

2012-11-27 PacSec2012 レポート

プロダクト開発第二部の愛甲です。

今回は11月14~15日に青山ダイアモンドホールで行われた国際カンファレンスPacSec2012(https://pacsec.jp/)について報告します。

PacSecは毎年11月に東京で行われるセキュリティカンファレンスで、国内外からスピーカーを呼び、セキュリティに関するセッションを行います。じつは私自身PacSecの参加は初めてで、客層や会場の雰囲気などまったく知らなかったのですが、参加してみて国外からの参加者が多いことに驚きました。はっきりとは分かりませんが、参加者はおそらく100人程度で、国外からの参加者が2~3割程度だったと記憶しています。

セッションは英語、日本語の同時通訳が行われ、プレゼン資料も英語と日本語の併記で進められ、まさに国際カンファレンスといった感じでした。


PacSec2012

都合上いくつかのセッションは残念ながら参加できなかったのですが、今回は参加した中で特に興味深かったセッションについて紹介しましょう。


まず1日目の最初に行われたセッションはクリス・エング氏のData Mining A Mountain of Zero Day(ゼロディの山をデータマイニングする)という、ゼロディを統計的に調査した結果をまとめた発表でした。

使われているプログラミング言語の割合や、どのような脆弱性が多いか、また脆弱性が発見され攻撃される確率はどの程度かなどを統計的に解説するもので、現場でExploitを解析しているだけでは知りにくい情報が多く、とても興味深いものでした。

特に面白かったのは各開発言語に対する脆弱性の割合で、たとえば.NETで開発されたアプリケーションに存在する脆弱性の中でのXSSの割合47%、PHPに存在するXSSの割合75%といった具合に、その開発環境の特徴を示すものなどもありました。

またXSSやSQLiが年々減少しているのか増加しているのかといった話もあり、時系列としての脆弱性の増減にも注目していました。

このような脆弱性に関する統計的な情報はなかなか得られないため、セキュリティに携わるエンジニアにもその全体像はなかなか掴めないものです。そういう意味で、とても興味深いプレゼンでした。

今年のBackHat EU 2012でも発表されていたようで、そのプレゼンがWebに公開されています。



続いて行われたセッションはステファン・シェネット氏のThe Future of Automated Malware Generationで、日本語では「自動化されたマルウェアの未来」と翻訳されていました。

マルウェア作成とその検知という双方の立場から、それぞれが技術的にどのような対応策を打てるかという話で、これまでのアンチウイルスとマルウェアの変移を中心に今後どのような技術が必要になっていくかといった内容でした。

現在ではExploitを作成するツール(Blackhole exploit kitなど)を使い、ほとんどコストをかけずにマルウェアを作成できます。これらがより機能向上し、一般的になるとマルウェア検知にも限界がきます。そういった点を踏まえてアンチウイルスの今後の課題に注目していました。

発表では、まず検知手法を大きく次の4つに分けており、それぞれの可能性や限界について解説していました。


 ・ハッシュ

 ・シグネチャ(正規表現も含む)

 ・ヒューリスティック

 ・意味論的な検知


ハッシュやシグネチャは現在のアンチウイルスでは当たり前に利用されているもので、ブラックリスト的なアプローチとも言えます。しかし、これらにも限界が見えてきたことからヒューリスティックや意味論的な検知を考えなければなりませんが、果たしてそれらがどの程度の可能性を持つのかという判断は難しいところです。

意味論的な検知(Semantics-aware detection)とは、人間と同じように実行内容の意味を認識して検知するといったもので、xor eax,eaxとmov eax,0のように、結果は同じだがコードが異なるものでも同じものとして(同じ意味として)認識する検知手法です。実用化されているかどうかは分かりませんが、今後よりマルウェアのポリモーフィック化が進むと必要になる技術でしょう。

年々マルウェアが増えていることにより、マルウェア解析者の業務がオーバーフローする現状において、新しい検知手法が必要であるという点も指摘しており、個人的にとても面白い発表でした。

このセッションも資料がslideshareに公開されています。



他にも技術的な発表ではありませんでしたが、Googleの脆弱性発見に対する報奨金制度(報酬プログラム)についての話、アダム・バッカス氏、ケビン・スタッドマイヤー氏のWhat it takes to successfully run a vulnerability reward program(脆弱性発見報酬プログラムを成功させるには)も、とても興味深い内容でした。

ここ数年、製品、サービスの脆弱性を発見、報告した人に報奨金を出す制度が増えており、代表的な組織にGoogle、Facebook、Mozillaなどがあります。この制度はまだあまり普及していませんが、今回はこのGoogle社において行われた報酬プログラムについての話でした。

基本的に報酬プログラムの実施が成功であったことを前置きした上で、運用していく中で発生した問題やそれへの対応を事細かに話しており、個人的にこういった取り組みが今後様々な企業、サービスで増えれば、開発側によってもユーザー側によってもプラスになると感じました。

実際、報酬プログラムを開始した段階で報告が急増し、賢いバグ、面白いバグなどが多く見つかり、開発側としても興味深いものが多かったようです。ただ、報酬が欲しいためだけの貧相なレポートも少なからず送られてくるようになり、それらの対応も必要なったとのことです。

また報告されたバグの68%はXSS、15%はXSRFで、報告者の上位20%が全体の約80%近い脆弱性を発見していたといった話もあり、どのようなバグに注意すべきで、どういった人たちが脆弱性を発見してくるのかといったデータが得られることも重要であったようです。

実際の運用は報酬が絡むため、いろいろと社内調整が難しいところもあったようですが、総合的にやってよかったといった話が運用者から聞けたのは本当にすばらしいと感じました。



そして、昨今のセキュリティカンファレンスでは外せないAndroidについても今回2セッションが用意されていました。

Androidに関するセッションは、エルソン・ライ氏のAndroid malware detection in the cloud(クラウド利用のAndroidマルウェア検出)、アンソニー・デスノス氏、ジェフロイ・グーゲン氏のNew "open source" step in Android Application Analysis(Androidのアプリ分析における新しいオープンソースのステップ)の2つでどちらもAndroidアプリケーション(特にマルウェア)を解析する手法についての発表でした。いかにしてそれらを自動化するか、または効率的にマルウェアを検出するかといった内容です。

逆アセンブラ、逆コンパイラによる静的アプローチ、エミュレーションによる動的アプローチ、またネットワークのモニタリングや類似性、複雑性を用いた悪意あるコードの判別など、既存のアンチウイルス技術を世襲しつつ、Androidであるがゆえに起こる問題等に言及した内容でした。

私はあまりAndroidのセキュリティについては詳しくないのですが、技術的な問題だけではなく、様々なレイヤーからセキュリティについて考える必要があるといったこともコメントしていました。



他にも興味深い発表が多く、日本でもセキュリティに関するこのようなカンファレンスがもっと多く開かれればと感じました。

国内と海外ではセキュリティに対する意識などに違いがあり、日本では当たり前のことがそうではなかったり、また日本では普及していない技術が重要であったりといった様々な違いが、このような国際カンファレンスではより身近に体感できます。そういった意味でも面白い経験をしたと感じました。


またこのような機会があれば当ブログにてレポートさせていただきます。