ソースコード診断の重要性

ソースコードはシステムを支える核となる大切な資産であり、その品質はシステムの信頼性と安全性に直接結びついています。
しかしながら、開発の現場ではソフトウェアの複雑化・大規模化に伴い、バグや脆弱性の発生リスクが高まり続けているという課題を持ち続けています。


また、ソフトウェアの開発・リリース・運用までのプロジェクトスパンの短縮化に伴い、品質を確保するための対策が求められるのも頭の痛い問題となっています。


これらの背景から、ソースコードの品質への重要性が日々高まるばかりです。

本記事では、こうした課題に対し、ソースコード診断の重要性とその有効性について解説していきます。

CONTENTS

Part1 ソースコード診断の基本
 ソースコード診断とは
 ソースコード診断の目的
 ソースコード診断の手法
 ソースコード診断のメリット
 ソースコード診断の工程
 コード診断の実施時期
Part2 ソースコード診断で検出できる問題例
 未使用変数(デッドコード) コード
 過剰な内部クラス
 低いコードカバレッジ
Part3 ソースコード診断で検出できるセキュリティ脆弱性の例
 SQLインジェクション
 クロスサイトスクリプティング(XSS)
 セッション固定攻撃(セッションハイジャック)
 クリティカルデータの平文保存
 セキュアコーディングとは
Part4 セキュリティ確保へのアプローチ
 セキュアコーディング
 脆弱性検出の自動化
 OWASP Top 10対応
Part5 継続的インテグレーション(CI)プロセスへの組み込み
 継続的インテグレーション(CI)とは
 継続的インテグレーション(CI)の主な特徴と原則
 継続的インテグレーション(CI)のしくみ
 継続的インテグレーション(CI)のしくみや主な特徴と原則
 ベストプラクティス
 CIプロセスへの組み込みのベストプラクティス
 静的解析と動的解析を組み合わせて行う

Part1 ソースコード診断の基本

ソースコード診断とは

ソースコード診断とは、開発されたソースコードに対して、静的解析や動的解析を実施し、コードの品質やセキュリティ上の脆弱性、パフォーマンス面のボトルネックなどの問題点を特定する作業のことです。
ソフトウェア開発において、ソースコードは製品やサービスとしてのソフトウェアの根幹をなすものです。しかしながら、開発者が書いたソースコードが必ずしも100%正しく不具合がまったくないソースコードあるとは限りません。どれだけ優秀な開発者がコードを書いたとしても、不具合のまったくない完璧なコードが常にアウトプットされるわけではありません。
開発プロジェクトの中でコードレビュー工程を入れ、コードの品質を保つ取り組みがなされることも多いですが、開発プロジェクトメンバーが持つ先入観やレビューに割り当てる時間の問題、スキルレベルなど様々な問題があり、深刻な問題を見落としてしまう可能性もあり、第三者や専用のツールによるソースコード診断が重要な意味を持ってきます。

ソースコード診断の目的

ソースコード診断の目的は、以下のとおりです。

  • ソフトウェアの品質を向上させる。
  •  ソフトウェアの開発・運用の効率化を図る。
  •  セキュリティリスクを低減する。

ソースコード診断を行う際には、対象とするソフトウェアの種類や範囲、期間などを明確にしておくことも重要です。

続きは資料ダウンロードよりお読み頂けます。