問22 コードを検査する OSS

情報処理​安全確保​支援士 令和7年度 春期 午前II、全25問のうちの問22。

出典:令和7年度 春期 情報処理安全確保支援士試験 午前II 問22(ふりがなを省いた)

アジャイル開発のプロジェクトで,ソースコードの品質を向上させるために,バグ,コードの重複,脆弱性につながるコードを自動で検出することができる OSS のツールを導入したい。導入する OSS として,最も適切なものはどれか。

  1. アGit
  2. イJenkins
  3. ウSnort
  4. エSonarQube
答えと解説を開く

正解はエです。

SonarQube は、ソースコードを動かさずに読んで (静的解析)、バグのもと、重複したコード、脆弱性につながる書き方などを自動で見つけ、品質を一覧や評価で示す OSS のツールです。正解はエです。

ほかの選択肢が違う理由

  • アGit は、ソースコードの変更の履歴を残して管理するバージョン管理の道具です。コードの中身の良し悪しは調べません。
  • イJenkins は、ビルドやテストを自動で回す CI の道具です。それ自体はコードの中身を検査しませんが、SonarQube を呼び出す役には使えます。
  • ウSnort は、ネットワークを流れる通信から攻撃を見つける侵入検知 (IDS) の OSS です。ソースコードは調べません。

仕組み

アジャイル開発では、短い間隔で何度も変更を入れます。静的解析を CI に組み込み、プルリクエストごとに自動で検査すれば、問題が積み重なる前に気づけます。

ただし、静的解析には見落としも、問題でない物を問題と言う誤検知もあります。人のコードレビューや、動かして確かめるテストと組み合わせて使います。

この問に出る言葉