BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース SAPがJava SCAツールのソースを公開

SAPがJava SCAツールのソースを公開

原文(投稿日:2019/03/14)へのリンク

SAPは先日,社内で2年間にわたって600以上のプロジェクトを20,000回以上スキャンしてテストされた,ソフトウェア構成分析(SCA)ツールVulnerability Assessment Toolのソースコードを公開した。

Vulnerability Assessment Toolは,OWASP-Top 10 2017 A9に記載されている,脆弱なコンポーネントの検出を特に目的としたものだ。ソフトウェアパッケージをスキャンして,直接および推移的な依存関係を調査し,それぞれの依存関係をNational Vulnerability DatabaseCVE listといった既知のソースと比較することにより,既知の脆弱性や悪意のあるコードが各パッケージに存在するかどうかを判断する。開発中はこの情報が,特定のコンポーネントのアップグレードすべきタイミングを教えてくれる。さらに運用時には,脆弱性が発見された場合に,どのアプリケーションに対処が必要かを特定する目的でこの情報を使用することができる。

Apache Struts CVE-2017-9805のパッチ不適用を原因とする2017年のEquifaxの漏洩以降,SCAはソフトウェア産業において重要な位置を占めるようになった。この漏洩では合計で14,300万レコード以上が失われ損失額は6億ドルを越えると考えられている。Apache Software Foundationは以前,"Apache Struts Statement on Equifax Security Breach"として,SAPがVulnerability Assessment Toolで対処しようとしている問題に関して,次のようなリコメンデーションを公開したことがある。

  • ソフトウェアプロダクトで使用しているフレームワークとライブラリ,そのバージョンについて理解し,これらのプロダクトやバージョンの影響するセキュリティ情報を把握すること。
  • セキュリティ上の理由で,使用しているフレームワークあるいはライブラリの更新が必要になった場合に,ソフトウェアプロダクトのセキュリティ修正リリースを迅速にロールアウトするためのプロセスを確立すること。週あるいは月単位ではなく,数日,可能であれば時間単位で考えることが望ましい。我々の知る漏洩の大部分は,ソフトウェアコンポーネントの既知の脆弱性を数ヶ月,あるいは数年にわたってアップデートしなかったことから発生している。

SAPの新しいツールは,基本的なファイルのリストアップという範疇を越えて,アプリケーションのセキュリティに関する静的コードテスト(SAST)により,各コンポーネントの使用評価を行うことができる。このような設計によって,脆弱なコンポーネントが存在しても実際には使用されていないような場合の誤検出を,最小限に抑えることが可能になる。例としては,CVE-2016-0636のようなアプレットの脆弱性に対して,ツールがJREそのものを脆弱であるとフラグ付けした場合における,アプレットに関係しないサーバ側のコンテキストでのJREの使用があげられる。

静的コード解析は,コードレベルの脆弱性をリリース前に検出するためのセキュリティ対策として,多くの組織が実施している。具体的には,PCI Secure Software Standardの8.4.b章とNIST 800-53 section SA-4で言及されているコードレビューの他,バイナリ解析など,コード生成物を解析する検出メカニズムが存在する。その他にも,Integrated Application Security Testing(IAST)を通じてアプリケーションの挙動を継続的に監視する方法などがある。

プロジェクトの資料には,セキュリティをテストする上での静的解析の分野に関わる,いくつかの制限が説明されている。具体的には,Java 9マルチリリースJARファイルのような非静的情報がサポートされていない,という点が述べられている。このJava機能は,実行時の動作として,JREが適切なクラスを選択することによって,同じ名前空間で複数のクラスファイルを提供するものだ。ランタイムを持たない静的なコンテキストでは,この決定に関する情報が欠如しているため,アナライザはすべてのパスを選択するか,あるいは基本クラスのロケーションをデフォルトとして選択しなければならない。SAPのツールでは後者の決定方法を実行して,IAST風の動的実装をJavaで提供することにより,静的セキュリティ分析におけるこの種の情報不足に対処し,どのファイルが使用されるかを検出している。

SAP Vulnerability Assessment ToolはGitHubでリリースされ,Henrik Plate, Serena E. Pontona, Antonio Sabetta, Cédric Dangremont, Alessandro Pezzé各氏によってメンテナンスされている。

この記事に星をつける

おすすめ度
スタイル

BT