DynamicおよびStatic Application Security Testing(動的・静的アプリケーションセキュリティテスト)用ツールは、開発者がコードのエラーやセキュリティホールをより迅速に発見するのをサポートします。

Chim | shutterstock.com
ソフトウェアサプライチェーン、特にその脆弱性は、近年多くの騒動を引き起こしてきました。特に注目を集めた例が、ITサービスプロバイダーSolarWindsへの攻撃で、18,000社以上の顧客企業が影響を受けました。この攻撃はサプライチェーンへの唯一の攻撃ではありませんでしたが、誰が責任を持つべきかという問いに再評価をもたらしました。
SolarWinds攻撃への対応の一つが、元米国大統領バイデンによる「国家のサイバーセキュリティ強化に関する大統領令」です。この大統領令は、サプライチェーンのセキュリティ確保の重要性を強調しただけでなく、安全なソフトウェアを提供する際の開発者の責任も明確に示しました。この命令は米国政府機関およびその取引先にのみ適用されますが、すべての関係組織が自社のソフトウェアベンダーを確認し、安全なコードを提供する必要があることを象徴しています。これは、自社向けのプログラムやアプリケーションを開発する企業であっても、第三者のソフトウェアサプライチェーンの一部であっても同様です。
最大の問題は、ソフトウェア開発者が長年、どれだけ速くプログラムできるかだけで評価されてきたことです。セキュリティは後回しにされるか、他の担当者の責任範囲とされてきました。現在、多くの開発者がサイバーセキュリティについて学んでいますが、自分のコードに脆弱性がないことを保証するための支援が必要です。そのために、Dynamic Application Security Testing(DAST)およびStatic Application Security Testing(SAST)用ツールが大きな役割を果たします。
DASTおよびSASTツールとは?
SASTおよびDASTツールがソフトウェアサプライチェーンのセキュリティ強化の文脈で再び重要性を増しているのは当然のことです。これらは、開発者が安全なコードを提供するためのツールを提供します。これは公式なDevSecOpsプログラムの一部として、またはセキュリティの責任をアプリケーション開発の現場に近づけるために活用できます。SASTとDASTツールの目的は、コードをより安全にすることです。理想的には、アプリケーションが本番環境に導入され、サプライチェーンの一部となる前に実施されます。両者は同じ目標を持ちますが、異なるアプローチで問題に取り組みます:
-
SASTツールは、まだ開発中のプログラムやアプリケーションのソースコードを解析します。CI/CDパイプラインに統合したり、開発者がプルリクエストを出した際に自動で起動するように設定できます。これにより、Static Application Security Testingツールは、アプリケーションへの新たな変更によって意図せず脆弱性や他のエラーが追加されるのを防げます。一部のSASTツールは統合開発環境(IDE)の一部として動作し、プログラミング中にエラーを警告します(現代的なワープロのスペルチェックのように)。
-
DASTツールは、アプリケーションがコンパイルされた後に使用されます。Dynamic Application Security Testingツールは、コード内の脆弱性を発見するためというより(それは理想的にはSASTツールで既に解決されています)、外部テスターとして、例えばオープンなhttpやHTMLインターフェースを通じてプログラムをハッキングしようとします。一部のDASTツールは、金融業界や小売業界など特定分野で一般的な攻撃の脆弱性を検出するように設定できます。
このような違いがあるため、SASTツールは選択したプログラミング言語をサポートしている必要があります。DASTツールの多くはそれを必要としませんが、場合によってはソースコードも利用して問題を特定できます。一部の企業はDASTまたはSASTツールのいずれか一方のみを使用していますが、両方を組み合わせて使用するか、両方の機能を備えたツールを利用することが推奨されます。これにより、アプリケーションをより良く保護でき、ソフトウェアサプライチェーンのセキュリティ全体の向上につながります。
Dynamic Application Security Testingツール:トップ4
以下に、現在利用されている主要なDASTおよびSASTツールのいくつかをご紹介します。
Acunetix DASTプラットフォームは、DASTとIAST(インタラクティブアプリケーションセキュリティテスト)を利用し、完成したコードやウェブサイト設計、アプリケーションにおいて7,000以上の脆弱性を検出します。IASTでは、スキャンおよびテストコードがデバッグシンボルのようにコンパイル済みプログラムに組み込まれます。これにより、Acunetixはプログラム実行中にスキャンを開始でき、アプリケーションを休止状態で調査する場合よりも多くの脆弱性を発見できます。IASTはまた、(SASTと比べて)誤検知の数を減らすことが期待されます。
プラットフォームのコードは高速化のためC++で書かれており、スキャンが半分も終わらないうちに最大90%の結果をエクスポートできます。ユーザーはAcunetixプラットフォームを一度だけ実行することも、定期的なテストのスケジュールを設定することも可能です。また、プラットフォームが非常に軽量なため、複数の環境を同時にスキャンしても速度が落ちません。
2. Opentext Fortify WebInspect
かつてのMicro Focus社のFortify WebInspectプラットフォームは、Opentextによる買収後、Fortify WebInspectとして提供されています。オンプレミス、サービス、またはハイブリッド環境での組み合わせとして利用可能です。単独のDASTツールとして動作しますが、CI/CDパイプラインに統合でき、通常SASTツールのみを利用する開発者でも利用できます。
このツールは、特に重大な脆弱性のみを検出するように設定でき、開発者に深刻なエラーを早期に警告し、リリース前に修正できるようにします。さらに、NIST 800-53、PCI DSS、OWASP、HIPAAなどの政府規制に準拠しているかもチェック可能です。脆弱性が発見されると、プラットフォームはグラフィカルなインターフェースで問題を可視化し、段階的な解決策を提案します。
Black DuckのDASTプラットフォームはマネージドサービスとしても利用可能です。これにより、社内での保守や管理が不要となり、スキャンで開発チームが対応できない問題が発生した場合には、企業がサポートを提供します。
このツールは、SQLインジェクションやクロスサイトスクリプティングなど多くのプログラムに共通する脆弱性を検出するだけでなく、手動スキャンモードも備えており、複雑な問題にも対応できます。また、認証、アクセス制御、セッション管理のエラーなど、通常のスキャンでは見つからないセキュリティホールも検出できます。
4. Tenable.io Web App Scanning
Tenableはセキュリティベンダーの中でも老舗で、堅牢なクラウドベースの脆弱性管理プラットフォームで知られています。Web App Scanningはこのプラットフォームの一部であり、高性能なDASTツールとして機能します。
TenableアプリはWebアプリケーション専用ですが、HTML5、標準HTML、AJAXを含む深いスキャンを実施します。シンプルなユーザーインターフェースを備えており、アプリケーションセキュリティ専門家がいないチームでも使いやすい設計です。自動化も簡単で、どのコードセクションをスキャンするか細かく設定できます。さらに、Web App Scannerは単体でも、Tenableの他のサイバーセキュリティソリューションに統合しても利用できます。
Static Application Security Testingツール:トップ5
CheckmarxのSASTプログラムは、高度な機能とSASTツールの中でも優れたWebベースのユーザーインターフェースを兼ね備えています。インターフェースはセキュリティに詳しくない人でも使いやすい設計です。Checkmarxは脆弱性を特定するだけでなく、なぜその脆弱性が特に危険なのかも説明します。さらに、開発者には発見された問題を最も簡単かつ効果的に解決するためのヒントも提供されます。
標準で25以上のプログラミング言語をサポートし、CI/CDパイプラインの一部として自動実行するよう設定できます。もちろん、カスタムクエリを作成して必要に応じて実行したり、主要なIDEやソースコード管理プラットフォームに統合したりすることも可能です。
2. Opentext Fortify Static Code Analyzer
OpentextのFortify Static Code Analyzerは、SASTとDASTの両要素を組み合わせています。SASTプラットフォームとして、分かりやすいビジュアルインターフェースを用いて、コード内の具体的な脆弱性(および定期的に発見される脆弱性の種類に関する統計)を810種類のカテゴリに分類して表示します。その後、開発者はトレーニング画面に誘導され、セキュリティや安全なコードに関する興味深く楽しいレッスンが提供されます(ベンダー談)。
このプラットフォームは27のプログラミング言語とフレームワークをサポートし、オンプレミスまたはサービスとして利用できます。さらに、EclipseやVisual Studioなど、ほとんどの主要なIDEに統合可能です。
Klocwork SASTツールは、特に大規模環境でのスピードに重点を置いています。C、C++、Java、JavaScript、Pythonで記述されたアプリケーション(Dockerコンテナ内も含む)に対応し、Visual Studio CodeやIntelliJなど主要なIDEに統合できます。Klocworkは複雑な環境向けのSASTツールとして開発されました。
Klocworkを使えば、数百万行に及ぶ巨大なコードベースもスキャン可能です。スキャン時間短縮のため、変更された部分だけをスキャンし、毎回全体をスキャンする必要はありません。また、開発者のセキュリティ教育にも役立ちます。セキュリティと意識向上に特化したトレーニングプラットフォーム「Secure Code Warrior」と完全に統合されています。
4. Spectral SpectralOpsプラットフォーム
Check Pointは最近Spectralを買収しましたが、同社はそのユニークなSAST機能のためSpectralOpsプラットフォームの積極的なサポートを続けています。SpectralOpsは、開発中によくハードコーディングされるAPIキーや認証情報、トークンなどの機密情報を検出します。その狙いは、開発段階で秘密情報へのアクセスを可能にする設定ミスを発見することです。
SpectralOpsはソフトウェア開発ライフサイクルのあらゆる段階を継続的にスキャンし、AIを活用して2,000以上の検出エンジンを監視します。誤検知を抑えるため、後続テストも実施されます。結果はSlackへの通知、Jiraチケットの発行、またはほぼすべてのコミュニケーションプラットフォームでのアラートとして送信できます。
5. Veracode Static Analysis SAST
VeracodeのSASTプラットフォームはクラウドサービスであり、SASTアプリケーションの複雑な保守が不要です。セキュリティベンダーVeracodeは「ジャストインタイム・ラーニング」の原則に基づいており、プログラミング中に脆弱なコードを検出できます。コードが修正されると、Veracodeプラットフォームはレポートを作成し、企業がセキュリティ意識の高い開発者を育成・奨励できるようにします。
IDEへの統合に加え、Veracodeはスピードにも重点を置いています。プログラムやアプリケーションの各ビルドは自動的にスキャンされ、平均スキャン時間はわずか90秒です。すべてのアクションが記録され、監査も容易になります。
ITセキュリティに関するさらに興味深い記事をお探しですか?当社の無料ニュースレターは、セキュリティ担当者や専門家が知っておくべき情報をすべて、あなたの受信箱に直接お届けします。
ニュースレターを購読する
編集部からあなたの受信箱へ直接お届け
まずは下にメールアドレスを入力してください。