「RASP」でゼロデイ攻撃を防御! ~Webアプリケーションの最先端セキュリティ対策~
本記事のサマリ
はじめに
プログラムに脆弱性が発見された際に、対応手段や修正パッチなどがリリースされておらず、脅威にされされている状態をゼロデイ脆弱性と呼び、ゼロデイ脆弱性を利用した攻撃のことをゼロデイ攻撃と呼びます。最近話題になったゼロデイ脆弱性は「CVE-2021-44228」(通称:Log4Shell)、「CVE-2022-22965」(通称:Spring4Shell)が挙げられます。多くの企業が自社Webアプリケーションへの影響度合いの確認や修正パッチの適用作業などを迫られ、ゼロデイ攻撃に有効なセキュリティ対策の必要性を認識されたのではないでしょうか。
今回はゼロデイ攻撃からWebアプリケーションを守る新しいセキュリティ対策として、RASP(Runtime Application Self Protection)と呼ばれる製品を紹介します。
ゼロデイ脆弱性~Log4Shellの攻撃フローについて~
今回Javaのライブラリで発見されたLog4Shellは、概念実証コード(POC)が早い段階で公開されており、誰でも簡単に攻撃を仕掛けることができました。Log4Shellの攻撃フローについて簡単に説明します。
Log4ShellはJNDI Lookupと呼ばれるLog4jの機能を悪用します。HTTPリクエストに特定の文字列が含まれていた場合にJNDI Lookupが実行され、Webアプリケーションは攻撃者のサーバと通信を行います。その後攻撃者のサーバからダウンロードしたclassファイルが実行され、Webサーバが乗っ取られます。
Webアプリケーションのセキュリティ対策 ~WAFとRASPについて~
脆弱性やサイバー攻撃から自社のWebアプリケーションを守るためのセキュリティ対策として代表的なものにWAF(Web Application Firewall)があります。
また新しいセキュリティ対策として、Webアプリケーション自体にセキュリティ機能を持たせるRASP ( Runtime Application Self Protection)が注目を集めています 。
それではLog4Shellを例にして、WAFとRASPでWebアプリケーションの保護にどのような違いがあるかを次の図を用いて説明します。
WAFではシグネチャと呼ばれるアクセスのパターンファイルを保有しており、そのパターンファイルに一致した通信だった場合に検知するような仕組みとなっています。そのためWAFにLog4Shellに対応したシグネチャが存在していた場合にはその通信を遮断します(上図➀)。しかしLog4Shellが発見された当時、詳細な攻撃パターンが判明しておらず、Log4Shellに対応するシグネチャを作成することができませんでした。そのため、WAFによるLog4Shellへの対応にはブランクが生じていました。
一方でRASPではWebアプリケーションが異常なコードを実行していないか、行われるはずのないサーバと通信していないかなどを監視しています。想定されない挙動をRASPが検知した場合には、通信を中断し、Webアプリケーションを脅威から守ります。具体的にLog4Shellの攻撃フローに当てはめて考えてみます。
Webアプリケーションが想定されないサーバと通信が行われることが確認できた際に、その通信を検知します(上図➂、➄、⑧)。また、Webアプリケーション上で想定外のコマンドが実行される際にも、そのコマンドの実行を検知します(上図⑩)。このように、RASPはLog4Shellの攻撃パターンが判明されていなくても、Log4Shellによる被害からWebアプリケーションを守ることが可能になります。
このような「脆弱性攻撃の結果」を検知するRASPであれば、今年の3月末に流行したSpring4Shellも含め、ゼロデイ攻撃を効果的に防御することができます。
最後に
従来型のWebセキュリティソリューションWAFは重要ですが、ゼロデイ攻撃については対応が遅れるケースがあります。他方、RASPにゼロデイ攻撃を効果的に防げる為、WAF+RASPでWebアプリケーションを強力に保護できます。
RASPについてご興味のある方は弊社までお問い合わせください。
関連コンテンツ
・ホワイトペーパー「もう脆弱性に振り回されたくない!Log4j脆弱性を振り返って考える、これからのWebセキュリティ対策とは?」
・動画「WebAPI セキュリティ入門! API をビジネス活用するために知るべき3つのこと」