コード・セキュリティ監査とは?

コードセキュリティ監査とは、開発経験者やセキュリティ経験者がアプリケーションを詳細に分析し、開発文書やソースコードを読んでセキュリティの脆弱性や安全でないプログラミングの習慣を効率的に特定し、アプリケーションの正常な動作を保証するために開発者がそれらを修正するように指導することです。 コードセキュリティ監査は、ソフトウェアセキュリティ開発ライフサイクル(SDL)の重要な一部です。 開発プロセスにおいてコードセキュリティ監査を実施することで、開発者が優れたセキュリティプログラミングの習慣を身につけ、プログラムの脆弱性に起因するセキュリティ問題の発生を低減することができます。

コード監査とセキュリティテストの比較

コード監査
ホワイトボックス的なアプローチを用いる
アプリケーションの内部動作の仕組みを分析するために、設計書などへのアクセスを必要とする。
セキュリティ・テスト
通常、ブラックボックス・アプローチで実施
アプリケーションの内部構造を事前に理解することなく、外部からアプリケーションを攻撃し、その入出力を監視する。

コード監査は、セキュリティテストと比較して、次のような特徴があります:

プログラムのアーキテクチャや処理ロジックの解析が必要であり、時間がかかる。
ソースコードの読み取りが必要であり、高度なプログラミングスキルが要求される
プログラムの機能的なポイントをすべてカバーし、セキュリティテストよりも多くの問題を発見することができる
プログラムの動作メカニズムを理解できるため、誤報・漏洩率が比較的小さい。

コードのリスクポイント

安全でないプログラミングの習慣

データベースへのアクセス、ファイルの読み書き、コマンド実行などの操作を行う際に、入力データを厳密に管理していない。

安全でない暗号化アルゴリズム

機密データを保護するために欠陥のあるアルゴリズムが使用されている。例えば、ユーザーパスワードの保存にMD5が使用され、ソルティングが実行されていない。

不適切な例外処理

プログラム中のヌルポインタ参照の問題により、特殊なファイルを解析する際にプログラムがクラッシュする。

セッション管理の不備

安全でない乱数生成器が使用され、予測可能なセッション・トークンが発生する。

コードセキュリティ監査のメリット
01

より徹底的で包括的

自動分析ツールによるコードの完全な分析で、日常的な脆弱性を迅速に特定する。コード監査と侵入テストを組み合わせて、システムの運用を包括的にカバーする。また、コードロジックを手動で洞察して、セキュリティリスクを分析する。

02

コード品質の向上

コード監査サービスでは、システムのセキュリティ上の問題点を特定し、それを修正するための詳細な推奨事項を提供します。これにより、開発者は安全なコーディングの習慣を身につけ、その後のシステム開発においてコードセキュリティの品質を向上させることができます。

03

コスト削減

開発段階、さらには要件や設計の段階で脆弱性を管理することで、修復コストを飛躍的に削減し、修復ツールの選択にも最大限の柔軟性を持たせることができます。 最も安全で攻撃されにくいWebアプリケーションは、セキュリティを念頭に置いて構築され、コーディングされたものです。

コードセキュリティ監査でサポートするプログラミング言語:Java、C/C++、.NET(C#、VB)、PHP、Python

コード・セキュリティ監査のプロセス

報告書と成果物

コードセキュリティ監査報告書は、テスト終了時に出力され、以下の内容が含まれています。

✔    プロジェクトの概要(全体評価、統計情報)

✔    監査プロセス(問題分類、問題説明、リスクレベル、コード分析、影響範囲、セキュリティ勧告)。

✔    監査結論

報告書の内容に関する質問には、詳細にお答えします。

報告書で特定された問題は、修正された後に開発者によって検証される。

業務システムの各フェーズの修正にかかる費用

ST、品質保証にこだわるネットワークセキュリティ専門家