11月21日、プロジェクト管理者や開発者に向けて「脆弱性を"根"から絶て! プロジェクト管理者のためのセキュリティセミナー」が開催された。アプリケーションの脆弱性をいかにしてなくすかをテーマにした同セミナーでは、最新のセキュリティ事情や対策のポイントといったレクチャーから、アプリケーションレイヤーへの脆弱性対策を実現する第一歩となる脆弱性診断の取り組みなどとともに、具体的なツールの紹介も行われた。

セミナーでは、イスラエルCHECKMARX社のFounder兼CTOであるMaty Siman氏が、「今の時代に求められるアプリケーションセキュリティ The cool future of source code analysis」と題して講演。「CxSuite」がアプリケーション解析において重要なテクノロジーを提供することについて語った。

イスラエルCHECKMARX社 Founder兼CTOのMaty Siman氏

Webを介したビジネス、サービスが様々なシーンへと拡大を続ける中で、アプリケーションの開発規模も拡大し、ソースコードの複雑性も増している。それらの環境において、ソースコード解析ソリューションには、単なるスキャン結果の正確性だけでなく、実際に使える結果をいかに提供し、いかに自動化を推進できるか、が求められている。

「開発者は脆弱性を発見し、どう修正すべきかを導いてくれる指導者を求めている」と語るMaty Siman氏が、これを解決できるソリューションとして提案するのが、Checkmarxが提供する「CxSuite」だ。

CxSuiteは、次世代型のソースコード解析技術を備えており、すぐに使えるセキュリティ解析技術をクエリとして搭載。既存の脆弱性に対する解析クエリを、ユーザの独自環境向けにユーザ側でもカスタマイズすることができる。また、解析対象のソースコードをコンパイルする必要がなく、部分的・断片的なソースの解析も可能だ。

「従来型のソースコード解析ツールは、セキュリティ解析技術とシステムアーキテクチャが密接に結合された『モノリシック』な構成だが、CxSuiteはモデル化され、データベースに格納された中間言語に対して解析ルールであるクエリを実行する、『2ステージプロセス』を採用している。これにより、一般的な脆弱性パターンの解析だけでなく、ユーザ独自の品質ルールやビジネスロジックの確認などへと、様々な用途へ応用することが可能だ」とMaty Siman氏。

講演ではクエリ応用の例として、バックドアの検出方法や、間近に迫っている消費税率の変更に備えた、計算ロジックの確認手段なども紹介された。通常は手間のかかる確認作業も、クエリの追加によって簡単に行えることがアピールされた。

アプリケーション個性の理解を支援する「CxSuite」

さらに今後は、より効果的かつ効率的な脆弱性対策の自動化を実現する手段として研究している「Discover Stochastic Sequences(推計[推計論]学的分析)」という、新たな技術の紹介も行われた。

推計学的分析とは、データマイニングの領域から発展したSCKD(Source Code Knowledge Discovery )という、データの中からナレッジと見なせるパターンを探索するプロセスを応用した技術だが、Checkmarxの研究では、膨大なコード群の中からコーディング規約などを自動的にテンプレート化し、例外を検知することで、容易に違反を見つけ出せるという。

講演ではこれら技術を適用できる例として、クエリなどで定義しなくとも、自動的にバックドアやコーディング規約を検知できる例を基に、活用法を示した。

「推計学的分析機能では、コードの群れに潜む知識から自動的に違反を見つけることができる。既知の脆弱性を解析するだけでなく、定義することさえ難しいコーディング規約の違反を発見したいケースにも応用でき、開発規模が大きければ大きいほど、良いコーディングを行う開発者が多ければ多いほど効果的だ」とMaty Siman氏は語った。

ソースコードからチェックしたいルールが自動的に設定でき、アプリケーションの品質向上に大きく貢献すると思われるこの機能は、2014年頃のリリースを目指して開発されているようだ。

現在の研究テーマ「推計学的分析」機能

最後にMaty Siman氏は、従来型の脆弱性対策ツールがいかに扱いづらく、それに対して「CxSuite」がどれだけ効率的であるのかを強調した。

「膨大、かつ正確な解析結果は、時として開発者を不幸にする。例えば、OWASPが脆弱性を学ぶ為に公開しているWebGoatプロジェクトには約220カ所にXSS、SQLインジェクションが含まれており、1カ所の修正に30分、確認に30分必要と仮定すると、全ての修正には約220時間が必要となる。これは約1人月に相当するが、我々はこの修正箇所をたった16カ所にまで絞り込むことができる。すなわち、約1/14に短縮するということだ。これで我々はゴルフを楽しむくらいの時間が持てる」と「CxSuite」の優位性が語られた。

「CxSuite」ではグラフで効果的な修正ポイントが示され、開発者は効率的に修正箇所を絞り込むことができ、必ずしも全ての指摘箇所を修正する必要がない。以下の図のように、従来型のツールでは膨大な検出結果が指摘されるケースでも、「CxSuite」では数カ所を修正するだけで全体の脆弱性対策等を完了させられるポイントを、効率的に見つけられるのだ。

従来型ツールの解析結果イメージ(左)と「CxSuite」による解析結果イメージ(右)

単体の脆弱性毎に修正ポイントをグラフ表示する機能は既に実装されているが、同種、異種の脆弱性を関連させて表示する機能についても、2013年のリリースを目標として研究開発が行われており、講演ではβ版でのデモが実施された。

「Checkmarxが提供するものは、単なるコードの解析結果ではなく、アプリケーションの個性を理解し、『よりたくましく』『よりセキュア』で『より正確な』アプリケーションを開発する、前提状況を提供すること。だが、私たちは、テクノロジーはゴールではなく、手段と認識している。私たちのゴールはお客様。お客様に最高の品質と経験を提供するため、技術改善をし続けたい」とMaty Siman氏は結んだ。