米Software Engineering Institute（SEI）のCERT部門は、静的解析によってコードの脆弱性を検出するアプリケーション「SCALe」（Source Code Analysis Laborator）をオープンソースで公開しました。

SCALeは、複数の静的解析ツールをまとめて実行するためのフレームワークでできており、今回公開されたアプリケーションにはセキュリティに関するコーディング規約「SEI CERT Coding Standards」およびSQLインジェクション、クロスサイトスクリプティング、バッファオーバーフローなど多くのソフトウェアの脆弱性を体系的に一覧化した「CWE（Common Weakness Enumeration）」（共通脆弱性タイプ一覧）の2つをベースにしたツールが含まれています。

SEI CERT Coding Standardsは現在、C/C＋＋、Java、Perlの各言語およびAndroid Secure Coding Standardが含まれています。

アラートを優先度付けすることで対応しやすく

SCALeでは、複数のコードの静的解析ツールを備えることで、より高精度の脆弱性検出を実現しています。一方で、複数の静的ツールを束ねると、それだけコードの脆弱性のアラートが大量になるため、そのひとつひとつをプログラマが確認する手間が膨大になって逆に修正対応を難しくする側面があります。

SCALeでは、より洗練されたアラート出力によってこの課題に対応していると、SEOのシニアソフトウェアセキュリティリサーチャーのLori Flynn氏は次のように説明しています。

We are researching ways to automate the process of accurate alert classification and sophisticated methods of alert prioritization, and this version of SCALe includes features added over the last three years intended to assist with that. 私たちは、より正確なアラートの分類と洗練されたアラートの優先度付けを研究し続けており、本バージョンのSCALeはアラートを確認するプログラマを支援するための過去3年の研究成果が取り入れられています。

SCALeは複数のツールから発せられるアラートをまとめて優先漬けするような仕組みを備えており、その手法は論文「Prioritizing Alerts from Multiple Static Analysis Tools, using Classification Models」としてSCALeとほぼ同時に公開されています。

関連記事

Facebookも2015年に制定コード解析ツールを公開しています。

Googleのバグ予測アルゴリズムは、コードのどこにバグがあるかを簡単に予測できる興味深い手法です。