特別企画

Webアプリ静的解析の新潮流、「クラウド」と「バイナリ診断技術」――VERACODEに聞く

Brian LaFlamme氏

 Webアプリケーションの脆弱性を診断するテスト手法として、ソースコードを精査する静的解析がある。この静的解析をクラウド上で行えるサービスが登場した。米VERACODEの「VERACODE クラウド型アプリケーションセキュリティ」である。

 クラウド上で静的解析を行うことで、オンプレミスのテストツールを導入するより時間とコストを抑えられる。一方、ソースコードをクラウド上にアップロードするため、情報流出や知的財産権保護の観点から不安がつきまとう。その懸念を画期的な方法で払拭したのがVERACODEの特長だ。

 その仕組みについて、米VERACODE Director, Solutions EnablementのBrian LaFlamme氏、および国内販売を担当するテクマトリックス株式会社に話を聞いた。

Webアプリの脆弱性診断とは

 Webアプリケーションの脆弱性を突く攻撃が後を絶たない。現状でも「50%以上の攻撃がアプリケーションレイヤを対象とする」(Verizon)一方で、「重要なアプリケーションの全てを検査している企業は10%に満たない」(SANS)と言われている。

 対策としてWebアプリケーションファイアウォール(WAF)を導入する手もあるが、ゲートウェイ型の対策はどうしても脅威を取りこぼす可能性があるため、根本的な解決のためには、脆弱性そのものを減らすセキュアコーディングの考え方が望ましいとされる。

 そこで必須となるのが、脆弱性を正しく把握し修正につなげていく脆弱性診断テストだ。Webアプリケーションの場合、その方法は大きく「動的解析」と「静的解析」に分けられる。

 動的解析は、Webアプリケーションへの擬似的な攻撃パケットを生成し、インターネット越しに実行し、そのレスポンスを見て脆弱性を判断する。一方の静的解析は、ソースコードを精査し、脆弱性を生み出してしまうコーディング上の不備を発見する方法となる。

VERACODE 静的解析の特長

 VERACODEは独自のクラウドプラットフォームを構築し、「動的解析」と「静的解析」をSaaSとして提供している。中でも「静的解析」は独自技術が組み込まれていて特徴的だ。

 動的解析はすでにSaaSで提供されているものが存在する。一方、静的解析のSaaSは少ない。なぜなら、静的解析はソースコードが必要となり、検査基盤がクラウドであると、重要な知的財産を外だししなければならず、セキュリティポリシーやコンプライアンスが壁となるからだ。SIerが受託開発する場合も、顧客との契約によってソースコードを外だしするのはなかなか難しい。

 そのため、Webアプリケーションの静的解析は、テストツールを導入して自社で行うか、厳密な業務契約の下で事業者にアウトソースする以外に、選択肢はほぼ存在せず、静的解析をSaaS型で提供するサービスは珍しいのだ。(例としては、米Coverityが提供するクラウド型のオープンソース静的解析サービスがある)。

バイナリコード診断フロー

 VERACODEの特長は、こうした壁を画期的な技術で乗り越えた点にある。その技術とは、比較的新しいセキュリティテスト手法である「バイナリコード診断技術」だ。ランタイム環境のコンパイル済みバイナリコードに対して、ソースコード診断(と同等の診断)がかけられる。仕組みは実行可能なマシンコードから特許取得済みの独自アルゴリズムを使ってコントロールとデータフローを分析し、動作モデルを作成。このモデルを解析することでコードレビューを行うというもの。ソースコードそのものを外だししなくて済むため、知的財産が守られる。

 利用方法もシンプルで、VERACODEクラウドプラットフォームにバイナリコードをアップロードすると検査用設定でビルドされ、あとは自動的に解析が始まる。Androidアプリに対応するのも特長だ。

 問題点が検出されると、当該箇所が含まれるソースファイル名や行数が指定される。ローカルに保存されたソースコードをレビュー画面に表示し、実際にコードのどの部分に問題があるかを目視で確認できる。脆弱性の度合いを5段階のセキュリティレベルで評価してくれるのもメリット。「例えば『高重要度の脆弱性は0件であること』『中重要度の脆弱性は○○は許容して、△△は修正する』といったポリシーを設け、そのレベルに達しているかどうかを一目で判断するものだ」(LaFlamme氏)。

ファイルをアップロードしテスト実行
セキュリティレベルに応じて結果判定
検出された脆弱性一覧レポート
脆弱性を選択すると該当コードが指摘される。ソースコードはローカルに保存されたものを表示している
特定の脆弱性のコールスタックを表示

「クラウド型」「バイナリ診断」のメリット

 クラウド型、バイナリコード診断であることのメリットはほかにもたくさん挙げられる。バイナリをアップロードするだけで利用できる手軽さは、開発の各工程にテストを組み込むことを容易にする。また、VERACODEはユーザー数に制限がないため、ユーザー数分のライセンスが必要な場合もあるオンプレミス型テストツールよりもコストが抑えられる。

ユーザー数は無制限。役割に応じた権限設定が可能

 「大企業のアプリセキュリティへの平均支出は500万ドルだが、その予算で企業が保有するアプリの5%程度しかカバーできてないという調査がある。一方、VERACODEを採用すれば、同じ予算で40%のアプリをカバーできるという試算がある」(LaFlamme氏)という。

 また、クラウド型なので随時アップデートされるのも運用上のメリットだ。テストツールは検査のためのデータベースやインテリジェンスが重要だが、ユーザー自身で作業せずとも、自動的・継続的にアップデートされていく。例えば、誤検知・未検知といったテスト精度の問題があったとしよう。オンプレミス型テストツールはユーザー自身でアップデートしなければ問題は解消されないが、SaaSで提供されるVERACODEなら、寝ている間にもプラットフォーム側の作業でアップデートが完了している。LaFlamme氏はそのサイクルの速さも強調し、「当社では、50万件/日以上のアセスメントを実施しており、その結果をプラットフォームに学習させ続けている」として、精度に強い自信をのぞかせている。

 さらにバイナリコードレビューというアプローチは、コアアプリケーション内の問題を正確に検出し、サードパーティ製のコンポーネントやライブラリの脆弱性も検出できるという強みを持つ。

 つまり「昨今のアプリケーションにはサードパーティのコンポーネントが組み込まれていることが多いが、そのソースコードを入手するのは困難で、すなわち従来の方法では静的解析を行うことができない。一方でバイナリコード診断という方法は、他社製のコンポーネントも含めて1つのアプリケーションとして静的解析できる」(同氏)というわけ。

 事例として、自社開発アプリケーションについて確実に品質をチェックしていたとあるハイテク企業が、サードパーティ・アプリケーションについてもセキュリティポリシーを確実に満たしたいと考え、VERACODEを採用。対象となったサードパーティ・アプリケーション全体の97%を分析し、実に1億3900万行のソースコードをわずか9カ月で診断し、7000個もの最重要・高レベルの欠陥を検出・修正できたという。

テクマトリックスが国内販売

 国内販売は、国内で初のディストリビュータとなったテクマトリックスが担当。販促・マーケティング、営業活動、製品サポートまで一気通貫で対応する。価格は、検査対象アプリケーションあたり年間165万円(税別)から。ユーザー数は無制限。

 加えて、VERACODEがグローバルで提供している「改修支援サポート」もテクマトリックスから提供される。専門知識のない顧客に、結果レビュー後の不明点をセキュリティに精通したアナリストが解説するもの。検出された脆弱性の詳細、それに起因する影響度などを例示し、改修の優先判断や一般的な改修方法も説明する。

 VERACODEは、同サービスをWeb会議越しのミーティング形式で行っているが、テクマトリックスもこのスキームを踏襲。国内の顧客にWeb会議で個別対応する。改修支援サポートの価格体系はチケット制(1時間程度/回)で、165万円の年間サブスクリプションに標準で6チケットが含まれる。

改修支援サポート
サポート内容

 なお、テクマトリックスでは、従来より取り扱っているオンプレミス型テストツール「IBM Security AppScan(以下、AppScan)」と、要望に応じてすみ分けながら提案する考え。

 「AppScanはカスタムルールを作成できる柔軟性、オンプレミス型、動的解析に強く、VERACODEはシンプル操作、SaaS型、バイナリコード診断による静的解析に強い。開発環境の外だしに制限がある場合はAppScanを、そうした制限がなくコストを抑えたい場合はVERACODEを提案していく。どちらに比重を置くというものではないが、VERACODEの特性は、昨今のアプリケーションセキュリティのニーズにマッチするのも事実なので、新しいマーケットを創出する意味で注力する」(同社)としている。

川島 弘之