デジタルイノベーション推進室のbenishougaです。昨今では様々なOSSがあらゆるアプリケーション開発に利用されています。今回は、そのアプリケーション開発で依存するOSSを対象にその品質をチェックする、SonarQubeの新機能 Advanced Securityを紹介したいと思います。
目次
1. SonarQubeとは
2. これまでのセキュリティ関連機能の紹介
3. 新機能Advanced Securityとは
・SCA
・Advanced SAST
4. まとめ
1.SonarQubeとは
SonarQubeとは、端的に言うと静的解析ツールですが、現在はコード品質や生産性の改善を行うプラットフォームとして進化してきているツールです。開発者がコードのバグや脆弱性、保守性の問題を早期に発見し、修正することを支援します。SonarQubeにはSonarQube IDEで行う開発時のリアルタイム分析と、SonarQube Server(Cloud)で行うCI統合された分析により、開発プロセス全体で一貫した品質管理を実現します 。
SonarQubeに関する記事について、当ブログでは以下のようなものアップしているので、興味ある方は参考にしていただければと思います。
SonarQubeの紹介 | Tech Blog | CRESCO Tech Blog
2.これまでのセキュリティ関連機能の紹介
SonarQubeには、SASTやTaint Analysis、Secrets Detection、IaC Scanningなど多くのセキュリティ関連機能があります。
- SAST
SAST(静的アプリケーションセキュリティテスト)は、ソースコードを静的に分析し、潜在的なセキュリティ脆弱性やコーディングの欠陥を早期に発見するための機能です。これにより、開発者はコードの品質を向上させ、セキュリティリスクを低減することができます。 - Taint Analysis
Taint Analysis(汚染分析)は、外部入力がシステム内をどのように流れるかを解析し、セキュリティリスクを特定するための機能です。これにより、SQLインジェクションなどの脆弱性を発見し、セキュリティリスクを低減することができます。 - Secrets Detection
Secrets Detectionは、コード内に紛れ込むことのあるパスワードやAPIキーなどの機密情報を探し出すための機能です。これにより、情報漏洩のリスクを大幅に低減することができます。 - IaC Scanning
IaC Scanningは、インフラストラクチャコードをスキャンし、クラウド環境や設定に関するセキュリティ問題を早期に発見するための機能です。これにより、セキュリティリスクを低減し、クラウド環境の安全性を向上させることができます。
紹介したこれらのセキュリティ機能は、標準ルールの変更や、独自ルールの追加といったカスタマイズができ、 CWEやOWASPといった業界標準に基づく様々なレポート出力機能と合わせて、多様なセキュリティニーズに対応することができます。
3.新機能Advanced Securityとは
当記事の冒頭でも触れた通り、昨今のアプリケーション開発では、OSSの活用は当たり前に行われており、実際に動くアプリケーションコードのうち、OSSが占めるコードの割合はさらに増えています。しかし、ライセンス条項が示す通り、OSSコードの責任を負う者はいません。つまり、何か問題があった場合、実際に責任を取る必要があるのは、アプリケーションを提供する自分たちとなってしまいます。
今回紹介しているAdvanced Securityは、SCAやAdvanced SASTの2つの新機能が追加され、自分たちで開発したコードだけでなく、OSSに含まれる問題や脆弱性の検知も可能となりました。これにより、上記のOSS使用に関わる懸念を解消することができます。
以下、それぞれの機能を詳しく紹介します。
- SCA
SCAとは、Software Composition Analysis(ソフトウェア構成分析)の略で、アプリケーションが依存しているOSSライブラリを洗い出し、脆弱性やライセンスによるトラブルがないかをチェックし、レポートするツールや仕組みです。このチェックを言語によらずプロジェクト全体で行うことができます。避けたいライセンスが利用されていないことを確認できるツールと考えると想像しやすいと思います。近い機能としてJavaScriptのパッケージ管理ツールnpm で提供されているnpm auditなどがあります。 - Advanced SAST
Advanced SASTは、従来のSonarQubeのSASTよりも解析範囲を広げ、OSSライブラリの中のコードまで分析する機能です。今までは、アプリケーション処理の多くがOSSライブラリに依存しているにも関わらず、その解析が十分に行えず、見逃しや偽陰性につながっていました。
4.まとめ
SonarQubeの新機能Advanced SecurityはOSSの問題に対処する待望の機能です。SCAを通じOSSライブラリの脆弱性やライセンス問題を迅速に発見し、Advanced SASTによってコード全体を精密に分析することが可能になりました。これにより、開発者は包括的なセキュリティ管理を実現し、リスクをより効果的に低減することができるようになりました。
Advanced Securityの機能を利用するには別途オプションライセンスが必要ですが、OSSを多用した開発環境におけるその価値は非常に高いものとなると感じます。アプリケーションの安全性と品質向上のために、ぜひ検討してみてください。
クレスコではSonarQubeを提供しているSonar社とパートナーシップを結び、その販売を行っています。またSonarQubeを活用したTrust Code Hubというシステム開発におけるコード品質の継続的な改善を通じて、開発効率とソフトウェア品質の向上を実現するソリューションも展開しています。興味を持たれた方はぜひ以下のページからお問合せください。