コードやソフトウェアに優れた機能をもたらすだけでなく、開発した製品がサイバー攻撃から確実に守られていることが最も重要です。この力は継続的なテストによって得られますが、その作業は煩雑になりがちです。
IASTは、現代の開発者が大規模に採用している主要なアプリテスト手法の一つです。SDLCにおける役割やその他の関連トピックを通して、詳細を理解していただけます。
広く知られるインタラクティブ・アプリセキュリティテストとは、アプリのパフォーマンスや動作に支障をきたすことなく、コードを継続的に監視・テストする最新のデジタルソリューション/アプリのテスト手法です。
テスト中もアプリは正常に動作します。アプリが稼働中にコードがテストされるため、実行時テストとも呼ばれることがあります。
この手法は、作成後もアプリやシステムが使用されている状態でコードのエラーを見つける、最も便利な方法と言えます。開発者コミュニティでは、即時のエラー検出が可能な点から、従来の旧態依然としたテスト手法よりも支持されています。
その実現には、複数のアプリテスト手法が用いられます。たとえば、スタティックAST(SAST)やダイナミックAST(DAST)などが挙げられます。
IASTは、対象ソリューションとしっかり連携する複数のセンサーやエージェントを利用して性能を監視します。異常が検知されると、これらのセンサーが問題の原因となるコードを特定します。
テストを簡素化するため、問題部分のコードのみがハイライト表示されます。こうして、開発者は正確かつ迅速にエラーを発見でき、SaaSやデジタルソリューション全体のライフサイクルに大きな好影響を与えます。
DevOpsは、開発と運用の各チームが同時にソフトウェアの開発や提供の各段階を進めるための手法です。コードは継続的に作成され、利用されます。
このため、コードは開発中にテストする必要があります。スタティックコードのテストでは対応しきれません。
前述の通り、IASTは動的な手法であり、コードを継続的にテストします。そのため、脆弱性が素早く発見され、開発者が即座に修正できるようになります。結果として、DevOpsのプロセス内で脆弱性のないコード運用が可能となります。
他にも多くの利点があります。下記にDevOpsにおけるIASTの意義をまとめました。
これらの機能により、IASTはセキュリティ、コード品質、テスト、実用性など各面でアプリの改善を支援します。
このタイプは、稼働中のアプリにセンサーを組み込み、エラーを検出します。エラーや脅威が発生すると、センサーは速やかにIASTのダッシュボードへ通知し、問題のあるコードを開発者に知らせます。なお、これらのセンサーはQAテスト対象のコードのみを扱い、その他はテスト対象外となります。
アクティブIASTは、DASTベースのIASTセンサーを用い、パッシブIASTと同様に動作しますが、センサーはデータ収集には関与しません。
最後に、トゥルーIASTがあります。これはアクティブIASTよりも高度なツールを含んでおり、IASTセンサーとDASTスキャナーが即時に連携することで、テスト結果がより正確でデータに基づいたものとなります。
この手法の最大の利点は、偽陽性が大幅に減少する点です。さらに、検出される脆弱性は確実なものであると確認されます。
SASTが最も古いテスト手法であるため、まずIASTと比較します。両者は複数の点で異なります:
IASTテストはSDLC後半で行われ、必ず実行環境が必要なのに対し、SASTはSDLC初期での実施を目指し、非実行環境で動作します。
また、IASTはサーバーベースのテストですが、SASTはIDEベースの手法です。
IASTはアプリのソースコードに依存しませんが、SASTはソースコード情報が必要です。
IASTは対象アプリが扱うあらゆるトラフィックを検査しますが、SASTは疑わしいトラフィックのみを対象とします。
SASTは静的環境で実施されるため、偽陽性が多く発生します。一方、IASTは即時環境でテストを行うため、偽陽性は少なくなります。
以上の点から、どちらもコードやアプリのテストを目的としながらも、アプローチが異なることが明確です。しかし、いずれも使いやすく、導入に大きな手間がかかることはありません。
DAST、またはDynamic App Security Testingは、SASTの後継であり、IASTの前身とも言える手法です。以下に、IASTとの共通点と相違点を説明します。
SASTと同様、DASTもソースコードにアクセスせず、外部の動作や脅威のみに着目します。これに対して、IASTは内部にも踏み込み、ソースコードの監視も行います。
DASTはペネトレーションテスターによって広く使用され、継続的な手動監視が必要ですが、IASTはほぼ自動化され、人手をほとんど介さずに実施できます。
IASTはダウンタイムがゼロで、即時環境で行われます。一方、DASTはテストに数日を要する、時間のかかる手法です。
IASTは対象アプリの言語と一致している必要があります。理想的には同一の言語であるべきです。DASTはSAST同様、言語に依存せず、どんなアプリにも対応可能で、プラットフォームの言語に左右されません。
IASTはSASTやDASTに代わる最新のテスト手法として登場し、従来のテストの欠点を完全に補います。このため、アプリテストの分野で非常に人気があります。この手法の導入を検討する際は、その主要な利点を理解してもらいたいと思います。
IASTのセキュリティテスト設定には多大な労力を必要とせず、あらかじめ多くの機能が組み込まれた状態で提供されます。利用者が構成作業に煩わされることはほとんどありません。
IASTはその正確さで知られています。コードが即時かつ動的にテストされるため、偽陽性が出たりエラーを見逃す可能性はごく僅かです。内部レベルで動作し、アプリのモジュールやコードファイルにもアクセスするため、脅威や脆弱性の検出が向上します。
早期発見はソリューションの安全性にとって極めて重要であり、IASTテストはそのために設計されています。全工程が自動化され、人手をほとんど必要としないため、遅延が発生しにくいです。さらに、ツールは問題のあるコード部分をハイライト表示します。
どこに脆弱性があるかを探す手間が省かれるため、開発者は即座に対応に取り組むことができ、作業が一層円滑になります。
IASTはSDLC後半で導入されますが、全工程に対応しており、開発の初期段階からアプリのセキュリティ向上を支援します。この手法はQAテストの一部であり、DevOps工程でも広く活用されます。AppSecチームは、このテスト手法に大きく依存しリスクを検出しています。つまり、どの開発段階でもIASTがテストを支援します。
多くの利点と卓越した機能を持つIASTテストは、幅広いユースケースが期待できます。この最新のテスト手法の利用に不慣れであれば、主要なユースケース一覧を参考にしてください。
開発工程でIASTツールを活用することで、コード作成や機能開発をエラーのない状態に保てます。SDLC初期で使用すれば、理想的なコード開発が実現され、初期段階でエラーが抑えられるため、ロールバックも減少し、市場投入までの期間が短縮されます。
QAテストにIASTツールを導入すれば、問題が大きくなる前に脆弱性の報告が可能となります。CI/CDやQSテストにも容易に組み込め、問題のあるコードを迅速に特定できます。
IASTテスト手法は、高品質なコード制作に必要なサポートを提供します。検出されたセキュリティ問題に基づき、将来的なパッチも作成できます。
エラー検出に利用できるIASTツールは複数存在します。利用を検討する際は、ツールのプログラム言語とアプリ作成のフレームワークが互換性があるか確認してください。
また、IASTテスト中にコードを監視できる脆弱性評価ツールの併用が推奨されます。Hdiv Detection、Seeker IAST、Invictiなどがその一例です。ぜひ試してみてください。
IASTは高品質なコード作成に寄与するため、自然とSDLCの一部となります。ここから、もう少し詳しく説明します。従来のDevOpsは徐々にDevSecOpsへと移行しています。この動向では、Secはセキュリティを意味し、セキュリティがDevOpsワークフローの不可欠な要素となっていることが明らかです。
IASTは、DevOpsにおいて採用すべき理想的なAppSec手法です。パッシブIASTとアクティブIASTの両タイプが、DevOpsのアジャイルな手法に対応し、アプリ開発で重要な役割を果たします。
CI/CDというDevOpsの核に組み込めば、IASTツールは積極的なエラー検出を実現し、結果としてテスト工数の削減とROIの向上につながります。
SDLC各段階へのIASTの導入は複雑ではありますが、その労力に見合うだけの、CI/CDパイプラインのセキュリティ向上が期待できます。従来のDASTやSASTでは、即時監視ができず、CI/CDパイプラインを常にエラーのない状態に保つのは困難ですが、IASTは多面的に改善を図ることが可能です。
例えば、パッシブIASTツールは大規模なQA・テスター連携を促進し、アクティブIASTはより広範囲な検出を実現します。ただし、SDLCでIASTを利用する際は、特有の要求事項にも留意する必要があります。パッシブIASTでは偽陽性が発生するケースが報告され、アクティブIASTの場合は通常以上の計算リソースが求められることもあります。また、SDLCでのIAST実装には、最新かつ成熟したテスト環境が必要です。
以上の三点が整えば、IASTはSDLC内で最適なパフォーマンスを発揮します。必要なリソースと注意があれば十分に機能します。
IASTは数多くのメリットを持ちますが、その効果は実装がスムーズであることが前提です。IAST実装を検討する際には、以下の点に留意してください。
これらの点を念頭に置けば、導入したIASTツールからより期待できる成果が得られるでしょう。
時代とともにサイバー脅威は増大しており、旧態依然としたテスト手法の継続は賢明ではありません。IASTは、現代の企業が即時のエラー検出のために採用できる最先端のアプローチの一つとして登場しました。使いやすく、優れた成果が期待できるため、ぜひお試しのうえその効果を実感していただきたいです。
最新情報を購読