WhiteSource、静的アプリケーションセキュリティテスト(SAST)について解説:アプリケーションは外部からの攻撃における最大の原因
WhiteSourceは、静的アプリケーションセキュリティテスト(SAST)に関する解説記事を公式ブログで公開した。SASTの目的や仕組み、特徴、新世代製品のメリット、ツールの選び方、導入方法を解説している。
オープンソースセキュリティとライセンスコンプライアンス管理プラットフォームを手掛けるWhiteSourceは2022年2月15日(米国時間)、静的アプリケーションセキュリティテスト(SAST)に関する解説記事を公式ブログで公開した。SASTの目的や仕組み、特徴、新世代製品のメリット、ツールの選び方、導入方法を解説している。
静的アプリケーションセキュリティテスト(SAST)とは?
SASTは、コンポーネントが静止しているときにソースコードを分析するホワイトボックステストだ。最も成熟したアプリケーションセキュリティテスト手法の一つとなっている。
調査会社Forresterが先んじて発表したセキュリティ専門家に対する調査結果のレポート「State Of Application Security Report, 2021」によると、アプリケーションは依然として、外部からのセキュリティ侵害における最大の原因だ。2020年に発生した外部からの攻撃の3分の2以上が、Webアプリケーションを介したもの(39%)か、ソフトウェアの脆弱(ぜいじゃく)性を悪用したもの(30%)だった。
SASTにより、開発者はカスタムソースコードのセキュリティ上の欠陥や弱点を検出できる。その目的は、要件や規制(PCI DSS《Payment Card Industry Data Security Standard》など)に準拠することや、自社のソフトウェアリスクをよりよく理解することにある。セキュリティ上の欠陥を理解することは、それらを修正し、ソフトウェアリスクを低減するための第一歩になる。
SASTは通常、開発のコーディングとテストの段階で実装され、CI(継続的インテグレーション)サーバや、最近ではIDE(統合開発環境)に統合されている。
SASTスキャンは、ソースコード内のコーディングエラーを定義した一連のルールに基づいて行われる。SQLインジェクション、入力検証、スタックバッファオーバーフローなど、一般的なセキュリティ脆弱性を特定するように設計することが可能だ。
SASTの主な特徴
SASTは、適切に実行されれば、組織のアプリケーションセキュリティ戦略に不可欠なものになる。SASTをSDLC(ソフトウェア開発ライフサイクル)に統合することで、組織のセキュリティプロファイルを向上させることができる。
1.セキュリティのシフトレフト
SASTはセキュリティテストのシフトレフトを支援し、プロプライエタリコードの脆弱性を、比較的容易に解決できる設計段階で検出する。このようにソフトウェア開発の早い段階でセキュリティ問題を発見、修正することで、リリース日近くや、リリース後に問題に対処することによる高いコストを回避できる。
2.安全なコーディングの確保
SASTは、ごく単純なコーディングミスに起因する欠陥を簡単に検出できるため、開発チームが安全なコーディング基準やベストプラクティスの順守を徹底するのに役立つ。
3.一般的な脆弱性の検出
自動化されたSASTツールは、バッファオーバーフロー、SQLインジェクション、クロスサイトスクリプティングといった一般的なセキュリティ脆弱性を、高い信頼性で容易に検出できる。
新世代SASTのメリット
新世代のSAST製品は、アプリケーションの開発環境の変化、特に、現代の環境の規模と開発スピードに対応して進化している。これにより、次のようなメリットを提供する。
1.使いやすさ
SASTの新しいアプローチは、既存のDevOps環境やCI/CD(継続的デリバリー)パイプラインとSASTの統合をさらに進め、開発者が個別にスキャンの設定やトリガーを行わずに済むようにしている。開発者はスキャンの実行や、結果の表示、セキュリティ問題の修正方法の調査のために、開発環境を離れる必要がない。そのため、新世代のSAST製品は開発者にとって、ワークフローに組み込みやすい。
2.CWEへの包括的な対応
新世代のSAST製品が提供する包括的な検出機能は、さまざまなプラットフォームやプログラミング言語、フレームワークで開発されたデスクトップ、Web、モバイルアプリケーションにおいて、多くの種類のCWE(Common Weakness Enumeration:共通脆弱性タイプ一覧)を可視化できる。その中には、The Open Web Application Security Project(OWASP)が挙げるWebアプリケーションの重大なセキュリティリスクのトップ10や、The SANS Instituteが挙げる最も危険なプログラミングエラーのトップ25などが含まれる。
3.誤検出の低減
従来のSAST製品は一般的に誤検出が多く、誤検出のノイズへの対処が開発チームやセキュリティチームにとって、かなりの負担となっていた。新世代のSAST製品は、誤検出の発生を大幅に減らせる。
4.スピード
従来のSAST製品は、一般的なSDLCが現在よりもかなり長かった他、大規模なコードベースの1回のスキャンに数時間かかることもあった時代に合わせて設計された。このため、リリースサイクルが1日未満の場合もある現在の速いペースの開発環境には、あまり適さない。新世代のSAST製品は、従来製品より格段に速いスキャンエンジンを搭載しており、数分以内にスキャン結果が得られる製品もある。
自社に最適なSASTツールの選び方
アプリケーションセキュリティテスト市場には、SAST製品がひしめいている。これらは多くの場合、追加のソリューションとバンドルされており、自社に最適な製品を見つけるのは難しい。
OWASPが提供する適切なSASTツールの選択基準リストを以下に示す。このリストは、企業がツールの選択肢を絞り込み、アプリケーションセキュリティ戦略の強化に最も有益なものを選択する上で役立つ。
- 自社で使っているプログラミング言語のサポート
- チェックできる脆弱性の網羅性
- スキャン精度
- 既存フレームワークとの互換性
- IDEとの統合
- 他のDevOpsツールとの容易な統合
- 大規模プロジェクトにも対応できるスケーラビリティ
SASTの導入方法
SASTソリューションを適切に実装するには、次の手順を踏む必要がある。
導入手段を選択する
オンプレミスとクラウドのどちらで展開するか。
構成し、SDLCに統合する
いつ、どのようにコードをスキャンし、分析するかを検討する。次のような選択肢がある。
- コンパイル時にコードを分析する
- コードベースにマージする際にスキャンする
- CI/CDパイプラインにSASTを追加する
- IDEでSASTを実行し、コーディングしながら脆弱性を検出、緩和できるようにする
分析の範囲を選択する
ニーズに合わせてカスタマイズすることもできる。例えば、誤検出の削減、新しいルールの作成や古いルールの修正に重点を置いたり、スキャン結果を分析するダッシュボードを作成したり、カスタムレポートを生成したりすることも可能だ。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
「GAFAM」から学ぶ、自動テスト手法――アジャイル開発で単体テストの“確からしさ”を検証する、ミューテーションテストとは
海外の先進的企業の事例を基にテスト自動化に使われる手法を解説する本連載。第1回は、アジャイル開発において単体テストを検証する「ミューテーションテスト」について。「テストしないものはリリースしない」が合言葉 東京都が「ユーザーテストガイドライン」を公開
東京都は、「ユーザーテストガイドライン」を公開した。都庁の職員に向けて、ユーザーテストを実施する上で必要な準備や実施方法などの方針を示したもの。「テストしないものはリリースしない」を合言葉に、ユーザーテストの実践を徹底するという。バルテスが「ソフトウェアテスト効率化カオスマップ」を公開
バルテスは「ソフトウェアテスト効率化カオスマップ」を公開した。ソフトウェアテスト関連サービスを提供する事業者や、自動化などのツール類を「テストベンダー」「テスト自動化ツール」「テスト管理ツール」など7分野に分類した。