DCS セキュリティ総合サイト 三菱総研DCS株式会社

セキュリティ診断サービス

HOME > セキュリティ診断サービス > ソースコード診断サービス 検査項目

ソースコード診断サービス 検査項目

ソースコード診断サービスは、セキュリティ上問題となるプログラムの組み方、アプリケーション品質上の問題点の検出に「FORTIFY 360 SCA」を使用するサービスです。
診断する検査項目(検査カテゴリー)の数は、診断対象アプリケーションのプログラム言語毎に異なり、例えばJavaのWebアプリケーション(J2EEアプリケーション)であれば、200項目以上に及びます。また、言語仕様だけではなく、主要なサードパーティライブラリについても解析し検査することが可能です。

■分析手法

5つの分析エンジンを組み合わせ、多角的な視点で脆弱性を検出します。

分析エンジン 検査方法
データフローエンジン
(データフローのチェック)

データの入力(例:JavaのgetParameter)行から、そのデータの出力(例:javaのexcuteQuery)行までを追跡し、危険なデータ(例:シングルコーテーション等)が無害化されるか検査します。

このエンジンが検出する主な脆弱性カテゴリは「SQLインジェクション」「xpathインジェクション」「クロスサイトスクリプティング」等の注入系脆弱性カテゴリです。

コントロールフローエンジン
(制御フローのチェック)

コントロール(例:データベースコントロールオブジェクトやファイルハンドラ等)に着目し、オブジェクトが生成されてから破棄されるまでのフローを追跡し、危険な使用方法がないか検査します。

このエンジンが検出する主な脆弱性カテゴリは「リソースの開放漏れ」などです。

セマンテックエンジン
(文法のチェック)

プロシージャ内レベルにおける関数やAPIの潜在的に危険な利用方法をパターンマッチングにて検出します。

このエンジンが発見する主な脆弱性カテゴリは「バッファオバーフロー」「CSRF」などで、例えばC言語のfgets関数やHTML上の入力パラメータを検出します。(脆弱性となりうるかどうか別途、目視の判断が必要となる情報レベルの問題が多く含まれます。)

ストラクチャルエンジン
(構造のチェック)

関数や変数、クラスの宣言をその階層構造に着目して追跡し、プログラムの構造や定義内の潜在的に危険な欠陥を検出します。

このエンジンが検出する主な脆弱性カテゴリは「シングルトンメンバーフィールド」等、メモリの競合や排他に関する問題が多く含まれます。

コンフィグレーションエンジン
(XMLファイルなど
設定ファイルのチェック)

アプリケーションの設定ファイルを検査し、その誤り、弱点、およびポリシー違反を検出します。

このエンジンが検出する主な脆弱性カテゴリは「コネクションタイムアウトの未設定」など設定ファイル上の問題です。

■攻撃に対して脆弱なコーディング

  • 不正なデータの注入等、攻撃に対する対策を施したコーディングであるか、ソースコードの流れを追跡し検査します。

検査項目サンプル
SQLインジェクション
xpathインジェクション
OSコマンドインジェクション
LDAP等のインジェクション
クロスサイトスクリプティング
CSRF
ディレクトリトラバーサル
リモートファイルインクルージョン
HTTPスプリティング

■セッション管理方式のチェック

  • アプリケーションでセッション管理用IDを生成する場合、生成方式にユニーク性、ランダム性の問題がないか等、セッションに関する問題がないか検査します。

検査項目サンプル
セッションの管理方式
セッションの有効期限
セッション固定攻撃の対策
セッションハイジャック対策
ランダムID等の生成方式のチェック

■システム情報漏えいのチェック

  • システム情報やエラー情報などの漏洩に繋がるコーディングの検査

検査項目サンプル
アプリケーションエラー時の詳細情報の漏洩
HTMLコメント
DBアクセス時のアクセス制御の不備

■信頼性・可用性の阻害要因のチェック

  • デッドロックの発生やリソースの開放漏れ等、アプリケーションの通常の利用でも誤動作やシステム停止、パフォーマンス劣化に繋がる信頼性・可用性の阻害要因となるコーディングがないか検査します。

検査項目サンプル
メモリ競合(レースコンディション)
システムリソースの開放漏れ
実行時エラーの原因となるコーディング
NULL参照
エラー制御違反

■ソースコードの保守性・可読性に関する問題点のチェック

  • プログラムの再利用性といた保守性に関する問題やソースの可読性に関するコーディングの問題点がないか検査します。

検査項目サンプル
言語仕様違反
コンポーネント、ライブラリ等の公開仕様違反
処理されることのない無駄なコード
SUN等のネーミングルール違反
最適でないアクセス修飾子スコープ
お問い合わせ

診断サービスメニュー