静的コード解析は、実際にプログラムビルドを実行せずに実行されるコードの分析です。解析は、個々のステートメントと宣言の動作のみを考慮したツールから、解析のプログラムの完全なソースコードを含むツールまで、さまざまなツールによって実行されます。この分析では、可能性のあるコーディングエラー(lintツールなど)、メモリリークの可能性などが強調されています。 多言語サポート RATS - Rough Auditing Tool for Securityは、セキュアソフトウェアのセキュリティエンジニアによって開発および管理されているオープンソースのツールです。 RATSは、C、C ++、Perl、PHP、Pythonのソースコードをスキャンし、バッファオーバーフローやTOCTOU(Time Of Check、Time Of Use)競合状態などの一般的なセキュリティ関連のプログラミングエラーを報告するためのツールです。RATSスキャンツールは、セキュリティアナリストに、問題を説明するとともに、フォーカスを当てる可能性のある問題点のリストを提供し、潜在的な救済策を提案します。また、各問題の潜在的な重大度を相対的に評価します。このツールは、明らかに問題ではない条件を排除するための基本的な分析も行います。 2. Yasica C / C ++、Java、JavaScript、ASP、PHP、HTML / CSS、ColdFusion、COBOLなどの任意のファイルタイプをスキャンするプラグインベースのフレームワークです。FindBugs、JLint、PMD、Pixyなどの他のスキャナと統合されています。Yascaはコマンドラインツールです。出力はすべての結果を含むHTMLファイルです。 Javaサポート Checkstyleは、プログラマーがコーディング標準に準拠したJavaコードを書くのを助ける開発ツールです。この退屈な(しかし重要な)タスクを人間に与えるためにJavaコードをチェックするプロセスを自動化します。これにより、コーディング標準を適用したいプロジェクトに最適です。 Checkstyleは設定が非常に簡単で、ほぼすべてのコーディング標準をサポートすることができます。Sunコード表記法をサポートする設定ファイルの例が提供されています。Checkstyleは、ビルドプロセスや開発環境に統合すると便利です 2. FindBugs メリーランド大学のJava用オープンソースの静的バイトコードアナライザ(ジャカルタBCELベース)。静的解析を使用してJavaコードのバグを探すFindBugsを実行するには、JRE(またはJDK)1.5.0以降が必要です。Javaの任意のバージョンのためにコンパイルされたプログラムを分析することができます 3. PMD PMDはJavaソースコードをスキャンし、次のような潜在的な問題を探します。
PMDは、JDeveloper、Eclipse、JEdit、JBuilder、BlueJ、CodeGuide、NetBeans / Sun Java Studio Enterprise / Creator、IntelliJ IDEA、TextPad、Maven、Ant、Gel、JCreator、Emacsと統合されます。 Java言語による開発をより堅牢にすることを目的としています。Hammurapiコードレビューシステムは、ベストプラクティスをコード化して、開発者に配信します。また、リード開発者、アーキテクト、マネージャー向けの統合レポートを生成し、コードベースの品質と進化を監視します。 C言語サポート 1. Sparse セマンティックパーサであるSparseは、多くのGCC拡張モジュールと同様に、ANSI Cのほとんどを解析できるコンパイラフロントエンドと、「スパース」と呼ばれるスタティックアナライザを含むサンプルコンパイラバックエンドのコレクションを提供します。Sparseは、アドレス空間ポインターが指しているものや、関数が取得または解放するロックなど、型に関する意味情報を伝えるように設計された一連のアノテーションを提供します。Sparseは、Linuxカーネルで起こりうるコーディングエラーを見つけるために設計されたツールです。この静的解析ツールは、当初はカーネル開発者にとって興味深い可能性が高い構造にフラグを立てるように設計されていた点で、他のツールとは異なりました。スパースには、既知の問題のある組み込みのチェックと、タイプに関する意味情報を伝えるように設計された注釈のセットが含まれています。たとえば、スペースポインタが指すアドレス、 2. Splint SplintはLintのオープンソースの進化版です。Splintは、Cプログラム中のセキュリティ上の脆弱性やコーディングミスを静的にチェックするためのツールです。注釈をプログラムに追加するだけで、Splintは標準のlintよりも強力な検査を実行できます。 3. Uno Unoは、ソースコード分析のための簡単なツールです。これは、主に3つの最も一般的なタイプのソフトウェアの欠陥を見つけるように設計されています。
これは、アプリケーション駆動型ツールでチェック力を拡張することができ、ユーザー定義の広範なプロパティの仕様とチェックを可能にします。例えば、ロック順序のプロパティのチェック、ユーザー定義の割り込みマスク規則の遵守、割り当てられたすべてのメモリを解放する必要があるという規則などを指定できます。 4. BLAST BLASTは、 Cプログラムのソフトウェアモデルチェッカーです。BLASTの目的は、ソフトウェアが使用するインタフェースの動作特性を満たすことを確認できることです。BLASTは、反復的にモデル化された自動抽象化リファインを使用して、安全なプロパティのために検査されたモデルである抽象モデルを構築する。抽象化はオンザフライで、必要な精度にのみ構築されます。 C ++サポート 1. Cppcheck Cppcheckは、静的C / C ++コード解析のツールです。このプログラムはC / C ++コンパイラが検出しないバグを検出しようとします。見つかった最も一般的なエラーは、関数の範囲内のメモリリークです。Linuxカーネルには21のバグが確認され、修正されています。他の多くのオープンソースプロジェクトからも多くのバグが見つかりました。Cppcheckは、GNU General Public Licenseの条項の下で公開されたフリーソフトウェアです。これはC ++で書かれています。 |
>
- Yahoo!サービス
>
- Yahoo!ブログ
>
- 練習用