Comparitech.comは公式ブログで、コード検査ツールに求められる機能を解説し、それらの機能をほぼカバーする主要な7製品を紹介した。いずれも幅広いプログラミング言語に対応し、部分的なコードであっても脆弱性を検知できるという。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
比較サイトComparitech.com(以下、Comparitech)は2021年8月3日(英国時間)、脆弱(ぜいじゃく)性検知などに用いるコード検査ツールについて、求められる機能を解説し、それらの機能をほぼカバーする次の7製品を紹介した。
「SonarQube」(SonarSource)
「Synopsis Coverity」(Synopsys)
「DeepSource」(DeepSource)
「VisualCodeGrepper」(NCC Group)
「Embold」(Embold)
「Parasoft」(Parasoft)
「Checkmarx」(Checkmarx)
コード検査ツールはプログラマーや開発者ができるだけバグやエラーのないコードを作成できるよう支援するソフトウェアソリューションだ。こうしたツールは通常、コードを読み取り、分析し、潜在的な問題や脆弱(ぜいじゃく)性をリアルタイムに特定する。これにより、本番環境にリリースする前にコードを修正できる。
コード検査ツールを使えば、コーディングミスが本番環境でのトラブルにつながり、多額の損失が発生するのを未然に防ぐことができる他、本番環境にリリースされたプログラムのエラー修正に時間と費用を浪費せずに済む。さらに、業界のセキュリティ基準に準拠した安全なアプリケーションを最初から開発する方法を学ぶことができる。
Comparitechによれば優れたコード検査ツールは、次の8つの特徴を備えているという。
プログラミング言語への対応
できるだけ多くのプログラミング言語に対応する。大規模な開発環境にデプロイする場合は、この機能が特に求められる。
既存のIT環境との連携
デプロイされる環境のITアーキテクチャに含まれるライブラリやフレームワーク、プラットフォームとうまく連携する。
IDEとの連携
開発者が使用するIDE(統合開発環境)と連携する。独立して実行されるツールや、スタンドアロンソフトウェアは望ましくない。
部分的なコードへの対応
ビルド可能なソースコードだけでなく、コードスニペット(コードの断片)からリアルタイムに脆弱性を特定できる。
脆弱性対応
できるだけ多くの脆弱性を検知する。新しく登場するバグや脅威にも対応できなければならない。Open Web Application Security Project(OWASP)が挙げるトップ10の脅威を検知できることが、優れた検知機能の一つの目安になる。
高い精度
検知精度が高く、判定結果が偽陽性や偽陰性をほとんど含まない。
使いやすさ
セットアップしやすく、使いやすく、管理しやすい。インストールしたら、継続的かつ自動的に動作し、手動の操作が最小限で済む。
投資効率が高い
投資する価値がある。例えば、無料のソリューションやより安価なソリューションにパフォーマンスで劣る場合、そのツールに費用をかけるのは合理的ではない。
今回取り上げた7つのコード検査ツールは、これらの特徴を全て、またはほとんど全て備えているとComparitechは主張する。
SonarQubeはコード品質の継続的な検査を実現する最も人気の高いオープンソースプラットフォームの一つだ。静的コード解析を実行し、無停止の自動レビューを可能にする。
20以上のプログラミング言語に対応し、バグや怪しいコード(コードスメル)、セキュリティ脆弱性を検知できる。
パスセンシティブなデータフローエンジンを搭載しており、NULLポインターの参照を検出する他、ロジックエラーやリソースリークを確認できる。
開発者が使っているDevOpsシステムから直接コードのビューを共有できるため、コード修正などの改善を共同で実行できる。脆弱性をSonarQubeが発見すると、深刻度に応じてランク付けするため、対応の優先順位を付けやすい。
既存のコードだけでなく、プルリクエストの分析やコードブランチの記録、プロジェクトのタイムラインを可視化して計画性を高めることもできる。
Copyright © ITmedia, Inc. All Rights Reserved.