2021年06月01日
知っておくべきSASTとSCAの役割の違いとは?奥村 和彦 Kazuhiko Okumura
このブログはアプリケーション・セキュリティ・テストツールの市場分類を紹介する、WhiteSoure社のブログ翻訳シリーズの第4回です。
前々回ではSCAツール、前回はSASTを説明しました。
所で、リックソフトが取り扱っている WhiteSourceはSCAツールとなるのですが、製品デモの際の質問で「WhiteSourceは、ソースコードの脆弱性をどのように検出しますか?」「WhiteSourceは、ソースコードをどのようにスキャンしますか?」といったことを聞かれます。
このような質問を頂いたときは『WhiteSourceは SCAツールなので、お客様のソースコードはスキャンしません。』とお答えし、SCA(Software Composition Analysis、ソフトウェアコンポジション解析) と SAST(Static Application Security Testing、静的アプリケーション・セキュリティ・テスト) の違いを説明しています。
今回のシリーズのためにWhiteSource社のブログを探していたところ、SCAとSASTの違いについてフォーカスした記事を見つけましたので、今回はこちらを翻訳することで、SASTとSCAの違いについて広く知って頂きたいと思います。
DASTとIASTについては次回、次々回で紹介します。
ちなみに "比較"の話なのですが、読んでいると「ん?比較?」と思う方がいらっしゃるかもしれません。ですが、最後まで読んでみてください。
世界10万社が使うプロジェクト管理ツール
\アジャイル開発チームの利用実績 No.1/
アジャイルプロジェクト管理ツールです。
ソースコード管理Gitツールの「BitBucket」と統合し、継続的デリバリーを実現させます
誰もが、DevOpsパイプラインの安全性を確保し、セキュリティをシフトレフトすることを話しています。
SAST(Static Application Security Testing)やDAST(Dynamic Application Security Testing)など、プロプライエタリなソフトウェアの問題に対処するアプリケーション・セキュリティツールは、開発者のセキュリティツールボックスの定番となっています。
残念なことに、多くの人が、アプリケーションのセキュリティ戦略には既知の脆弱性を持つオープンソース コンポーネントをカバーすることも欠かせないという事を忘れてしまうため、SCA (Software Composition Analysis) ツールも忘れ去られてしまうことがあります。
SASTとSCAは、どちらも脆弱性を管理しますが、運用方法や対象となる脆弱性も異なります。
さらにはソフトウェア開発ライフサイクル(SDLC)の異なるステージで統合されます。
SASTとSCAには大きな違いがあります。
SASTは、プロプライエタリコードのセキュリティ脆弱性のみを検出します。
コードを静的/非実行の状態でスキャンして、セキュリティ脆弱性になるかもしれない欠陥を検出することで、開発者はデプロイ前にコードを修正することができます。
SASTツール の機能の一つとして SCAソリューションが提供されているツールもありますが、専用のSCAソリューションほど包括的で効果的ではありません。
SCAは、組織のコードベースに含まれるすべてのオープンソース・コンポーネントを検出・追跡し、開発者がオープンソース・コンポーネントを管理するのに役立ちます。
高度なSCAツールは、オープンソース・コンポーネントの選択、セキュリティやコンプライアンス上の問題の警告しさらにはコードからこれらの問題を守るなどのオープンソース・コンポーネントの管理プロセス全体を自動化します。
また、発見されたオープンソースの脆弱性に関する包括的な情報を提供し、開発者が容易に修正できるようにします。
SCAツールは、設計・開発から運用後まで、SDLC全体を通して使用することができます。
その違いを明確にするために、SASTとSCAが異なる7つの点をリストアップしました。
まず、SASTとSCAの脆弱性の検出方法の違いについて説明します。
SASTは、組織内で作成したコードに対して、あらかじめ設定されたルールに基づいて潜在的な脆弱性をスキャンします。
SCAは、組織のソフトウェアプロジェクトを追跡して、既知の脆弱性を持つオープンソースコンポーネントを検出し、脆弱性に関する詳細なセキュリティ情報を提供することで、開発者が迅速に修正できるようにします。
SASTは、ソースファイルの分析に特化しています。
つまり、製品のソースコードのみをスキャンします。
SCAは、(オープンソースコンポーネントの) ソースファイルとバイナリの両方を識別します。
SCは、製品のソースコードをスキャンするのではなく、すべてのライブラリのデジタル署名を計算し、脆弱なオープンソース・ライブラリを検出します。
SASTの場合、潜在的な脆弱性の評価するための調査することから修正作業を始める必要があります。
修正方法を確認したら、開発者は最適な修復手順を定義する必要があります。SCAツールが検出したオープンソースの脆弱性の修正は簡単です。
なぜなら、すべてのオープンソースの脆弱性の97%は、オープンソース・コミュニティによって修正方法が確立されており、開発者は単にパッチを当てるか、最新のバージョンをダウンロードすることで修正するからです。
SASTツールとSCAツールは、どちらも開発プロセスの早い段階で統合することができ、修正に費用と時間が掛かる前に脆弱性をできるだけ早期に発見することを支援します。
SASTとSCAは共に CIサーバーやIDEと統合できますが、SCAツールはリリース後数年経ってから発見された脆弱性をカバーするために、デプロイメント後もSDLCをカバーします。
SASTツールは、潜在的なセキュリティ問題のパターンを基にソースコードをスキャンするため、比較的多くの偽陽性が多く、最終的なスキャンによる偽陽性の検出率は30%から70%にもなります。
一方、SCAツールは、新しい脆弱性ではなく、既知の脆弱性を持つオープンソース・コンポーネントを特定することを目的としています。
脆弱性のあるオープンソース・コンポーネントを正確に特定することが目的なので、適切なSCAツールを使えば、偽陽性をゼロにすることが可能です。
(補足させてもらうなら、既知の脆弱性を持つコンポーネントを知っているので、同じコンポーネントを使っていることが分かれば、偽陽性にならない。ということです。)
SASTスキャンの実行は大抵、時間が掛かります。
実行に数時間を要することもあれば、結果を基に潜在的な問題を調査・検証するためにさらに時間と人員を必要とすることもあります。
高度なSCAツールはプロジェクトの規模に関わらず、数秒で実行できます。
SASTツールは、一般的に組織のコードベースの10%から20%の脆弱性を検出することにに特化しています。
SCAツールは、開発者の日常業務を簡単にする自動化されたワークフローを使用することで、セキュリティやライセンスコンプライアンスなど、オープンソース管理のあらゆる面に対応します。
ご覧のとおり、SASTとSCA を比較することは、リンゴとオレンジを比較するようなものです。
どちらのツールも、開発者がコードの安全性を確保するのに役立ちます。しかし、それぞれのツールは異なる種類の問題に対処し、その方法も大きく異なります。
SASTがSCAより良いとか悪いとかではありません。
それぞれのツールは、異なる技術を用いて、異なる問題を扱っています。
その違いを理解し、それぞれに対して専門のソリューションを提供するベンダーと協力することが、私たちの最良のアドバイスです。
それが、セキュリティのすべてをカバーするための第一歩となるのです。
今回の内容について、私の翻訳が原因な点もあるかもしれませんが「SASTのデメリットとそれに対するSCAの強みを話していて、SASTよりもSCAの方が優れている」のように読み取った方もいるかもしれません。
もしくは、ブログのサブタイトルが "リンゴとオレンジを比較するようなもの"なのに「SASTとSCAを比較しているのはなぜ?」と感じた方もいるかもしれません。
実際の所、ここで挙げた7つの相違点は全て「SCAはオープンソースコンポーネントをスキャンし、SASTはソースコード (プロプライエタリ・コード)をスキャン」していることに起因しているに過ぎません。
要するに、"SASTとSCAはそもそも対象が違う" という事を強調したかったために、このような形での説明となっているのです。
ここまで読んで頂ければ、SASTがSCAの代わりにもならないし、SCAもSASTの代わりにはならないという事がおわかり頂けると思います。
つまり アプリケーションを構成するプロプライエタリ・コード と オープンソースコンポーネントの両方の脆弱性を検出するには、SASTとSCAの両方が必要になるのです。
またお客様の中には 「オープンソースをフォークし、プロジェクト用に改変して利用する」といったこともあるかもしれませんが、このような場合、SCAツールではスキャンすることが出来なくなるため、SASTツールを利用したコードスキャンでチェックをすることになります。
(注:ちなみにWhiteSourceは今年に入ってAIを利用し、このようなソースコードを解析して、マッチする元のオープンソースライブラリを特定する「SmartMatch」という機能をリリースしました。)
このように、アプリケーション・セキュリティ・ツール の それぞれの役割を理解し、アプリケーションに必要な ツールや機能を利用することが重要になります。
このブログはWhiteSource社の許可の下、
https://resources.whitesourcesoftware.com/blog-whitesource/sast-vs-sca を翻訳したものです。
WhiteSource社とWhiteSourceについては、 WhiteSource.com および弊社の製品紹介ページをご覧ください。
詳細情報は WhiteSource.com を参照ください。
あわせて読みたい!
★OSS(オープンソースソフトウェア)とは? OSSを活用するメリットや注意点、OSS管理に専用ツールが必要な理由を解説
★レガシーシステムとは?使い続ける場合の課題点や新システムとの連携方法を解説
本情報はブログを公開した時点の情報となります。
ご不明な点はお問い合わせください。
アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのサポートではサポートします。
リックソフトのサポートは開発元が提供するサポート以上の価値があります。
ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。
リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。
ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。
日本随一の生産性向上にも効果のある研修サービスです。
リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。