脆弱性を探し出す7つの主要コード検査ツールとは:重要機能をほぼ網羅した優れたツール群
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
SonarQubeはコード品質の継続的な検査を実現する最も人気の高いオープンソースプラットフォームの一つだ。静的コード解析を実行し、無停止の自動レビューを可能にする。
20以上のプログラミング言語に対応し、バグや怪しいコード(コードスメル)、セキュリティ脆弱性を検知できる。
パスセンシティブなデータフローエンジンを搭載しており、NULLポインターの参照を検出する他、ロジックエラーやリソースリークを確認できる。
開発者が使っているDevOpsシステムから直接コードのビューを共有できるため、コード修正などの改善を共同で実行できる。脆弱性をSonarQubeが発見すると、深刻度に応じてランク付けするため、対応の優先順位を付けやすい。
既存のコードだけでなく、プルリクエストの分析やコードブランチの記録、プロジェクトのタイムラインを可視化して計画性を高めることもできる。
Synopsys Coverity
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 企業のセキュリティ維持にはなぜペネトレーションテストが重要なのか
WhiteSourceはペネトレーションテストに関する解説記事を公開した。テストの目的と重要性の他、ペネトレーションテストと脆弱性評価との違い、テストを進める7つのステップ、主要なテストアプローチ、テストに使うツールについて紹介した。 - C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに
Coati Softwareは、クロスプラットフォームのインタラクティブなコード可視化ツール「Sourcetrail」を、無料のオープンソースソフトウェアとして公開した。CやC++、Java、Pythonなどに対応している。コードを読むことにほとんどの時間を費やす開発者に役立つツールだ。 - Microsoft、ソースコード解析ツール「Application Inspector」をOSSとして公開
Microsoftは、オープンソースでクロスプラットフォームのソースコード解析ツール「Microsoft Application Inspector」を公開した。多種多様なプログラミング言語で記述されたコンポーネントを使用した数百万行のコードを解析できる。コードの時間的な変化はもちろん、特に「危険な」部分がどこなのかを特定できる。