Webアプリケーションの脆弱性対策として、広く利用されている「WAF」。実はWAFは、幾つかの問題を抱えている。それらの課題を解消した新たな手段である「RASP」の特徴とは。
「DevOps」(開発と運用の融合)にセキュリティを取り入れた「DevSecOps」をWebアプリケーション開発で実現するには、どうすればよいのでしょうか。そのためには、Webアプリケーションの開発段階から本番運用までの全ての過程でセキュリティ対策を実施することが必要です。
Webアプリケーションの開発およびテストの段階では、脆弱(ぜいじゃく)性検出を効率化する「IAST」(インタラクティブアプリケーションセキュリティテスト)や「SCA」(ソフトウェア構成分析)といったツールが活用できます。Webアプリケーションの本番運用段階では、どのようなツールがDevSecOpsの実現に役立つのでしょうか。本稿は、その代表例である「RASP」(ランタイムアプリケーションセルフプロテクション)について解説します。
「WAF」(Webアプリケーションファイアウォール)は、Webアプリケーションを稼働させているサーバ(ホスト)と、インターネットなど外部のネットワークの間で動作する境界型セキュリティツールです。WAFは、大きく分けて3つの種類があります(図)。いずれのタイプも、シグネチャのパターンマッチングにより攻撃(マルウェアの実行やデータ流出など)をブロックするかどうかを判断する仕組みをベースにしています。
WAFをWebアプリケーションの脆弱性対策として利用する上で、特に問題になるのは以下の点です。
一般的なWAFは、攻撃ごとの通信手法や行動パターンをまとめた「シグネチャ」を使い、パターンマッチングによって攻撃を検出します。パターンマッチングは既知の攻撃の検出には有効ですが、シグネチャに合致しない攻撃を見つけることが困難です。そのためデータの内部構造を悪用するといった比較的複雑な攻撃の場合、見逃してしまう可能性があります。WAFでの検出が難しい攻撃の例は、以下の通りです。
基本的にWAFは、該当するシグネチャがない攻撃は検出できません。そのため新しい脆弱性に対処し続けるには、WAFのシグネチャを継続的に更新する必要があります。新しいCVE(共通脆弱性識別子)が出れば、それに対応したシグネチャが必要になるのです。OSS(オープンソースソフトウェア)の新しいCVEは、毎年約1万5000件報告されています。そのたびに新しいシグネチャを用意し、追加し続けなければなりません。
こうした問題による影響を緩和するためには、セキュリティエンジニアがWAFを定期的にチューニングしたり、シグネチャを定期的に更新したりする必要があります。これはセキュリティエンジニアの業務負荷を増大させ、コストの増加を招きます。WAFの大規模な全社展開に二の足を踏む企業が少なくない背景には、こうした事情があるのです。
Webアプリケーションの外部から攻撃を検出するWAFに対して、RASPは内部から攻撃を検出します。Webアプリケーションに組み込んだエージェントソフトウェアを使ってデータの流れを確認し、そこから得られたコンテキスト(複数の兆候)を基にして発生した攻撃を検出し、食い止める仕組みです。RASPは、Webアプリケーションの内部関数や、外部ライブラリのAPI(アプリケーションプログラミングインタフェース)の呼び出し内容を追跡し、関数やAPIの呼び出し時点で攻撃を特定可能です。こうした仕組みにより、RASPは比較的複雑な攻撃でも検出しやすいという特徴があります。
脆弱性の種類を識別するための共通基準であるCWE(共通脆弱性タイプ一覧)単位で攻撃を検出、ブロックすることも、RASPの特徴です。この仕組みによって、RASPが認識していない脆弱性を悪用した攻撃が発生しても、その攻撃が悪用する脆弱性のいずれかが既存のCWEと合致すれば、検出、ブロックできます。CWEの例には、正規のSQLクエリに悪意ある操作を挿入し、標的のサーバで実行させる「SQLインジェクション」があります。
RASPはWebアプリケーション自体と、Webアプリケーションが利用するOSSライブラリの、双方の脆弱性に対処できます。Webアプリケーションのソースコードに脆弱性が存在する場合、その脆弱性への一時的な対処にRASPが役立ちます。OSSライブラリの脆弱性が新たに見つかり、そのOSSライブラリをアップグレードするまでの一時的な対処としてもRASPを利用できます。
繰り返しになりますが、Webアプリケーションが扱うデータの流れを追跡し、解析することで脆弱性を検出するのが、RASPの特徴です。世界的に被害を広げている、Javaのログ出力ライブラリ「Apache Log4j」の脆弱性は、脆弱性を突いて最終的に悪意のあるプログラムを実行させる「コマンドインジェクション攻撃」に悪用されています。RASPは追跡、解析したデータに基づいて「悪意のあるプログラムの実行につながっている」と判断しますので、そうしたコマンドインジェクション攻撃もゼロデイ(ベンダーが脆弱性情報を公開していない状態)で検出してブロックできている実績があります。
企業が継続的に成長するためには、デジタルトランスフォーメーション(DX)の推進が不可欠です。DXを推進する上で、Webアプリケーションの開発と運用の効率化だけでなく、セキュリティ対処も効率化するDevSecOpsが重要になっています。
本連載をお読みいただいた方は、DevSecOpsの実現を支援する手段として、IAST、SCA、RASPが有効なツールであることをご理解いただけたのではないでしょうか。これらのツール群を適切に活用することで、開発プロセスのより早い段階でセキュリティ対策を実施する「シフトレフト」や安全な本番運用環境の実現など、セキュリティ対策の自動化、プロジェクト全体の効率化を図りやすくなると考えています。
国内システムインテグレーターや外資系企業で営業を経験した後、ArcSight(現Micro Focus)、41st Parameter(現Experian)など、主に米国スタートアップのカントリーマネジャーとして6社の日本オフィスを立ち上げ、成長させた。IT業界で約30年以上の経験があり、ハードウェア、ソフトウェア、クラウド、セキュリティ、データベース、デジタルマーケティングなどさまざまな分野に精通している。現在、安全なWebアプリケーション環境を構築して運用管理するContrast Securityのランタイムセキュリティ製品の拡販およびサポートに尽力している。
CMOはつらいよ マッキンゼー調査で浮かび上がるAI時代の厳しめな業務実態
生成AI、研究開発、価格戦略……。慢性的なリソース不足の中でマーケターの業務範囲はま...
「リンクレピュテーション」とは? SEO対策や注意点もわかりやすく解説
「リンクレピュテーションって何のこと?」「なぜ重要?」「リンクレピュテーションを意...
MAツール「MoEngage」 DearOneが日本語版UI提供へ
NTTドコモの子会社であるDearOneは、AI搭載のMAツール「MoEngage」の日本語版を2025年1月...