Klocwork Truepath™

スケーラブルで正確な全プログラム解析とバグの特定

Klocwork は 10 年以上前から静的解析の研究開発を続けています。その結果生まれたのが、可能なかぎり正確で包括的なバグの特定に対応する自動の全プログラム解析エンジン「Klocwork Truepath™」です。このコア テクノロジーは、以下の技術を利用することで、ソフトウェア ソース コードのスケーラブルで正確な静的解析を提供します。

ビルド プロセスの理解

あらゆる全プログラム静的解析の基本となるのが、ネイティブのビルド環境(make、Visual Studio、ant、その他)を統合し、自動で理解する能力です。Klocwork Insight がサポートするビルド環境の一覧は、技術仕様 ページでご覧いただけます。

制御フロー グラフのデータフロー解析

同技術は最新のソース コード解析の核となる部分であり、lint など旧来のツールだけでなく、現在提供されているオープン ソース ツールの多くと今日のツールとの違いはここにあります。Klocwork Truepath™ は、データ オブジェクトの作成から割り当て、使用、削除にいたるまでのライフサイクル全般を追跡します。バグの特定と解析はプロシージャ間で実行され、巨大なコード ベースをカバーすることが可能です。

コード コンパイルと構文解析

最新の静的解析ツールは、ソース コードのコンパイルとリンクに対応し、コード内のバグやその他の問題の検出をサポートする完全なデータ モデルを作成できるものである必要があります。

記号論理学

静的解析の精度をさらに高め、大規模なコードベースの複雑な問題を検出するために、Klocwork 製品を初めとする最新のツールでは、実際にコードを実行しなくても実行時動作を推測できるようにさまざまなアプローチを採用しています。このようなアプローチとしては、最新の記号論理学エンジンを使って、ソフトウェア動作を伝搬し、実行時に動作しないコード内のフォルス パスを取り除くことなどがあげられます。

正確なバグの特定と脆弱性の解析

Truepath を使えば、コードの品質と信頼性、セキュリティ、保守性に関する幅広い問題を正確に検出することができます。

品質と信頼性

セキュリティの脆弱性

保守性

メモリやリソースのリーク
割り当てが解除されたメモリの使用
メモリの不正な割り当て解除
NULL ポインタの逆参照
初期化されていないデータの使用
リソース管理
同時実行違反

バッファ オーバーフロー
無効なユーザ入力
SQL インジェクション
パス インジェクション
クロスサイト スクリプティング
情報漏えい
脆弱な暗号化
脆弱なコーディング

アーキテクチャの違反
ヘッダ ファイル構造
デッド コード
到達不能コード
使用されることのない計算値
未使用の関数パラメータ
未使用のローカル変数

コード サンプルを含む詳しい情報については、不具合と脆弱性のページをご参照ください。