第2日目は、SOC アナリスト 今吉敏和の記事です。SOC における IDS/IPS 製品向けのカスタムシグネチャの独自開発の取り組みを紹介します。
---
以前、EDR(Endpoint Detection and Response)製品向けのカスタムシグネチャについて こちら の記事でご紹介しましたが、IDS/IPS によるネットワークのカスタムシグネチャの独自開発についても積極的に行っています。この記事では、SOC でもっとも観測の多いWebアプリケーションフレームワークのひとつ Apache Struts の対応事例を用いてご紹介したいと思います。
以前の記事では MITRE ATT&CK を利用したカスタムシグネチャについてご紹介しましたが、IDS/IPS によって捕捉できるネットワークの挙動は EDR で検知できるログよりも限定されてしまう場合があります。リモートから Apache Struts が動作しているサーバへの攻撃の一般的な流れと、IDS/IPS で捕捉する箇所を以下の図にしました。
SOC では「1. リモートからの攻撃」および「2. 侵入後の行動」の両方に着目し、攻撃を遮断するための「遮断シグネチャ」、過検知も許容した攻撃の見逃しを防ぐ「汎用シグネチャ」、攻撃の進行度を判断する「レスポンスシグネチャ」の3つのタイプのシグネチャでアプローチします。
表 Apache Struts の脆弱性の対応例
シグネチャ名 | シグネチャタイプ | 説明 |
カスタムシグネチャ A | 遮断シグネチャ | Apache Struts の脆弱性を狙った HTTP リクエストを検知 |
カスタムシグネチャ B | 汎用シグネチャ | 攻撃通信に使用される頻度の高い文字列 |
カスタムシグネチャ C | レスポンスシグネチャ | 攻撃に使用される頻度の高いコマンド結果を検知 |
遮断シグネチャ
セキュリティベンダーは全ての脆弱性に対してシグネチャを提供するとは限りません。セキュリティベンダーが提供しているシグネチャでは検知できない攻撃手法が確認された場合、すでに出回っている攻撃コードや他の製品の検知データから確認された攻撃の通信パターンを検知するシグネチャを作成します。また、ベンダーが提供しているシグネチャで検知可能であっても、該当のシグネチャが過検知する場合もあります。この場合、攻撃通信のみ検知する検知パターンのロジックのカスタムシグネチャを作成します。攻撃通信パターンのみに絞った検知ロジックのシグネチャを作成し、遮断設定にすることで攻撃による脅威そのものを遮断します。
汎用シグネチャ
SOC では上記の「遮断シグネチャ」に加えて、攻撃対象の脆弱性を狙って想定される攻撃方法や攻撃に必要な通信パターンを検知する汎用的なシグネチャを作成することで検知漏れを防ぐ試みも実施しています。これによって攻撃手法が変化したことで上記「遮断シグネチャ」の検知回避がされたとしても汎用シグネチャで攻撃の発見につながります。「遮断シグネチャ」と比較すると過検知する可能性が高いため、この「汎用シグネチャ」については検知状況や攻撃の影響度に応じて遮断設定にするか判断が必要となりますが、「汎用シグネチャ」で検知した通信の情報から攻撃通信に検知ロジックを絞ったシグネチャを作成することで「遮断シグネチャ」にすることが可能になります。
レスポンスシグネチャ
セキュリティベンダーが提供するシグネチャはすでに出回っている攻撃コードを用いた「1. リモートからの攻撃」を検知を目的をしたものが多く、リモートからの攻撃通信を検知することができても「2. 侵入後の行動」について把握できなければ、どこまで攻撃が進行したか判断が難しいです。攻撃者が侵入後どんなことをしたいのかをあらかじめ予測し、それに対応した「レスポンスシグネチャ」を作成しておくことで検知した攻撃の成否や進行度を判断することが可能になります。また、仮に攻撃通信を検知できなかった場合でもこの「レスポンスシグネチャ」によって攻撃の被害にあっていることを発見することが可能になります。被害にあった端末のログから攻撃通信を特定し、リモート攻撃を検知するシグネチャを作成することも可能な場合があります。
表 Apache Struts に対する SOC の対応時系列
19:00 | Apache Struts のゼロデイ脆弱性情報を入手 |
19:30 | 顧客 X にてカスタムシグネチャ C を検知、攻撃被害を確認※ベンダー提供シグネチャでは攻撃検知なし |
19:30 | PoC、影響範囲を検証 |
21:00 | Apache Struts のパッチ済バージョン公開 |
22:30 | カスタムシグネチャ A をリリース |
翌 09:00 | セキュリティベンダー Z 対応シグネチャリリース |
~~~ シグネチャ A の検知状況を経過観察 ~~~ | |
翌 18:00 | カスタムシグネチャ A の過検知がないことを確認し、遮断設定に変更 |
~~~ 攻撃検知状況を経過観察 ~~~ | |
数日後 | 攻撃パターンからカスタムシグネチャ B をリリース |
さらに数日後 | Apache Struts の別のゼロデイ脆弱性情報を入手カスタムシグネチャ B にて該当攻撃を検知 |
上記の様に SOC の IDS/IPS の運用では 1つの事象に対して「遮断シグネチャ」、「汎用シグネチャ」、「レスポンスシグネチャ」の 3つのアプローチにより検知精度、リリースまでのスピード、攻撃に対する網羅性をカバーしながら、新しく発見された脆弱性や攻撃への対策を行ってます。