Contrast ADR(アプリケーションにおける検知と対応)テクノロジを支えるエンジンであるContrastランタイムセキュリティプラットフォームは、2024年8月中に約47,000件のサイバーセキュリティ攻撃をブロックした。
これは大きな数字だ。しかし、重要なのは数が大きいことではない。
むしろ、重要なのは攻撃の巧妙さが際立ってきていることだ。まともなWAF(Webアプリケーションファイアウォール)やCDN(コンテンツデリバリネットワーク)であれば、技術的にはXSSを阻止できるはずだが、これらのツールが正しく設定されていないケースが増えている。これらの技術の最新バージョンでは、XSSの絶え間ない攻撃に対応できるはずだ。もちろん、Contrast ADRも同様だ。
本当に重要なのは、巧妙な攻撃をブロックすることだ。あまり注目されず、それほど普及していない攻撃ではあるが、現在のツールがそれを発見して阻止するのに不十分であることを考えると、より大きな被害をもたらす可能性がある。
WAFではこれらの攻撃を確実に検出できない。より強力な保護のためには、RASP(ランタイムアプリケーションセルフプロテクション)で補完するのが最適だ。
この記事では、Contrast ADRが8月にブロックした最も頻度の高い攻撃について説明する。簡単に実行されるものから、従来のセキュリティスタックの穴をすり抜けて標的に侵入する巧妙な攻撃も含めて紹介する。ここでは、Contrast ADRでLog4jのような攻撃に対してどのように対応できるかを掘り下げ、その数値から得られ最も印象的な3つのポイントを明らかにする。
まずは、数が多い攻撃から見ていこう。
ブロックした攻撃 トップ4
2024年8月にContrastで検知したサイバー攻撃のトップ4は以下の通り:
1位:XSS — 21,444件の攻撃をブロック
XSS攻撃では、攻撃者は悪意のあるスクリプトをユーザとアプリの操作に挿入することで、脆弱なアプリケーションを乗っ取る。XSS攻撃は、クライアント側 (ユーザの Webブラウザ)で実行されているWeb ページの背後で実行されているスクリプトを標的とする。脆弱なブラウザは、スクリプトが信頼できるかどうかを判断できないため、XSSスクリプトを実行してしまう。これにより、攻撃者は、ブラウザに保存されているCookieやセッショントークン、その他サイトで使用される機密情報にアクセスできてします。要するに、XSSによって攻撃者はHTMLページを乗っ取り、ユーザをだまし、機密データを盗むことができるのだ。攻撃者は、サイトの制御を奪い、リンクをリダイレクトしたり、サイトの内容を書き換えたりすることが可能になる。
Contrast Securityの調査によると、80%のアプリケーションに少なくとも一つのXSSセキュリティ脆弱性があることが分かっている。これは、OWASPトップ10に10年以上もランクインしている問題としては驚くべき結果だ。
XSS攻撃の最近の例
2023年11月から12月の間、ResumeLootersとして追跡されていたグループが、XSSスクリプトを使用して、少なくとも4つの求人検索サイトにフィッシングフォームを挿入した。XSS脆弱性を悪用して、少なくとも65のWebサイトに対してSQLインジェクション攻撃を仕掛け、このグループは220万行近くのデータベースを盗み出した。そのうち50万行以上が求人検索サイトのユーザデータだった。
ホワイトペーパーを読む:ADRの事例
2位:メソッドの改ざん — 5,323件の攻撃をブロック
8月に2番目に多くブロックした攻撃は、メソッドの改ざん(別名、動詞改ざん/ HTTPメソッドの改ざん)だった。メソッドの改ざんは、セキュリティ設定で、暗黙的に「全てを許可する」ような設定がある認証・承認システムに対する攻撃のことだ。この種の攻撃は、HTTP動詞認証(HTTPメソッド 認証とも呼ばれる)とアクセス制御メカニズムの脆弱性が利用される。
HTTPには、特定の操作を実行するために使用できる様々なメソッドが提供されている。HTTPメソッドのリスト中で、GETとPOSTは、Webサーバによって提供される情報にアクセスするために開発者によって最も一般的に使用される。しかし、HTTPには他にもいくつかのメソッドがあり、その多くはWebアプリケーションにとって重大なセキュリティリスクとなり得る。なぜなら、攻撃者がWebサーバに保存されているファイルを変更したり、サーバ上のWebページを削除したり、シェルをサーバにアップロードしたりすることができ、ユーザの認証情報の盗難につながる可能性があるからだ。
3位:: パストラバーサル — 5,057件の攻撃をブロック
ディレクトリトラバーサルとしても知られるパストラバーサルは、8月にブロックされた攻撃の第3位にランクインしている。これらの攻撃は、影響を受けるアプリケーションを攻撃し、Webルートフォルダよりもディレクトリ階層の上位にあるサーバファイルシステムフォルダに不正にアクセスする。パストラバーサル攻撃が成功すると、Webアプリケーションが操作されて、アプリケーションやWebサーバのドキュメントルートディレクトリ外にあるファイルの内容を読み取られ、その結果、バックエンドシステムの認証情報、 アプリケーションコードやデータ、機密性の高いオペレーティングシステムファイルなどが公開される可能性がある。
パストラバーサル攻撃が成功すると、次のようなリスクにつながる可能性がある:
- 不正なデータアクセス:攻撃者は、設定ファイル、システムファイル、ソースコードなどの機密ファイルにアクセスすることができる。これらのファイルには、バックエンドシステムの認証情報 、アプリケーションコードとデータ、機密性の高いオペレーティングシステムファイルなどが含まれている可能性がある。
- データの流出:攻撃者は機密情報を盗み出すことができ、データ侵害や金銭的または風評被害につながる可能性がある。
- リモートコードの実行:場合によっては、パストラバーサルの脆弱性が他のセキュリティ上の弱点と組み合わさり、攻撃者がサーバ上で 任意のコードを実行し、システム全体の完全な侵害につながる可能性がある。
パストラバーサル攻撃の最近の例
2024年6月に、SolarWinds社のServ-Uファイル転送サーバにおけるで深刻度が高く、 容易に悪用可能なパストラバーサルの脆弱性が実際に悪用される事態が発生した。Contrast Securityの製品セキュリティ担当シニアディレクターのNaomi Buckwalterは当時、この脆弱性がさらなる攻撃へのゲートウェイとして機能する可能性があると指摘した。
4位に入ったのは、JNDI(Java Naming and Directory Interface)インジェクションだ。JNDIは、クライアントが名前を介してデータやオブジェクトを検出し、 検索できるようにするシンプルなJava APIだ。「シンプル」とは、文字列パラメータを一つだけ取るという意味だ。そのパラメータが信頼できないソースから来た場合、攻撃者はリモートコードを実行(RCE)できる状態になる。
JNDIインジェクション攻撃の最近の例
2021年11月に、Log4Shellと呼ばれるLog4j JNDIの脆弱性が発見され、急速に悪用された。この重大なゼロデイ脆弱性(CVE-2021-44228)により、攻撃者はアプリケーション内のロギングフレームワークLog4jとルックアップ機能のJNDIを使用して、攻撃者が制御するサーバへの特別なリクエストを生成することが可能になり、そこから、脅威の攻撃者は悪意のあるコードをシステムにダウンロードし、RCEを実行するアクセス権を獲得し、 許可なしに標的を侵害した。
2021年後半にLog4jの脆弱性が発見されてから3年が経過したが、Contrastの調査やその他の研究所の調査結果によると、Log4jは依然として悪用される脆弱性の上位にランクインしている。
Log4Shellから1年経った今でも企業はLog4jを探し出すのに苦戦
これらが攻撃回数の上位だ。次に、より巧妙な攻撃について見てみよう。
昔ながらのツールでは捕らえられない攻撃
WAFのようなツールで見逃される可能性のある攻撃には、次のようなあらゆる種類のインジェクション攻撃が含まれる:
どれもWAFでは確実に阻止することはできない。ここで、Contrast ADRの出番だ。Contrast ADRは、XSSのような分かりやすい攻撃だけでなく、高度な攻撃がすり抜けるような盲点もすべてカバーする。これにより、WAFでは到底実現できないアプリケーション層を包括的に可視化する。ADRの基盤となるテクノロジである、Contrastランタイムセキュリティは、アプリケーションおよびAPIに対してリアルタイムで常時稼働するセキュリティだ。そして、開発時の安全ではないプログラミングを防止し、本番環境での攻撃を検知して対応できる。
WAFがこれらの巧妙な攻撃を阻止できない理由
SecOpsの「それがどうしたの?」に応える
このような攻撃の種類についての話ばかりでは、セキュリティ運用担当(SecOps)の目は曇りがちになる。以下のような質問に対する答えだけが知りたいのだと思う。
- コードにどんな脆弱性があるのか?
- 誰かがそれを積極的に悪用しようとしているのか?
- それを証明するデータはあるのか?
- データがある場合、どうすればいいのか?この記事を読み続けるべきか、それともすべてを中断して何か対策を始めるべきか?
Contrast ADRには、その答えがある。Contrast Assessは、当社のIAST(インタラクティブアプリケーションセキュリティテスト)ソリューションであり、継続的に脆弱性を検出し、 優先度をつける。Contarst ADRは、本番環境で攻撃されているアプリケーションを報告する。Contrast ADRを使用すると、セキュリティ運用担当がこれらの情報を結びつけ、正確なコード行まで特定することを可能にする。脆弱性が積極的に攻撃されているかどうかも検知する。もしそうなら、対応する必要がある。Contrast ADRによってガイドラインが提供されるので、対応方法が分かる。
イベントの種類に関わらず、Contrast ADRにより脆弱性、脅威、 インシデント、または攻撃が検知されると、何が起こったかに関する詳細情報を含めた警告がをセキュリティオペレーションセンター(SOC)に送信される。この完全な詳細情報により、セキュリティ運用担当は警告が重要かどうか、また問題がある場合はトリアージ対応をどのように進めるかを判断するために必要な全ての情報を得ることができる。
それでは、ADRがどのようにセキュリティイベントを報告し、対応するのか試してみよう。
ADRの動き:JNDIインジェクションのブロック
以下はADRイベントの一例だ。この場合、 検出されたのはJNDIインジェクションで、具体的にはLog4Shellだ。.以下のスクリーンショットから分かるように、Contrast ADRはJNDIインジェクションを検出し、イベントのブロックをリクエストした:
同じアラートの詳細画面の様子:
ADRはWeb攻撃にどのように対応するのか?
Log4Shell攻撃に対するContrast ADRの対応
AJNDインジェクション攻撃(Log4Shellなど)に対するContrast ADRの対応は、攻撃の試みを発見したときにこの テクノロジがどのように対応するかを例示する。Log4Shellの場合、Contrast ADRは、NISTのサイバーセキュリティフレームワークに沿った、以下ようなの包括的な対応をトリガーする:
識別
- Contrast ADRは、ランタイムのContrastソフトウェアコンポジション解析(SCA)を使用して、アプリケーション層を継続的にマッピングし、 インベントリを作成し、脆弱なLog4jインスタンスを特定する。
- Contrast ADRは、攻撃の試みをリアルタイムで監視し、アプリの振る舞いとデータフロー全体を可視化する。
防御
- Protectモードに設定されている場合、Contrast ADRは、悪意のあるサーバへの最初のJNDI lookupを自動的に止める。
- Contrast ADRは、JVMセキュリティ設定を強化してJNDI機能を制限することで、攻撃対象領域を減らす。
検知
- Contrast ADRは、感染したLDAP(Lightweight Directory Access Protocol)サーバへのJNDI lookup の試みを特定し、セキュリティ運用担当に警告する。
- 悪意のあるELペイロードを実行しようとする攻撃の試みを検出する。
- Contrast ADRは、不正なJavaクラスのロードと実行を監視する。
- コマンドインジェクションを示す疑わしいプロセスの実行を特定する。
対応
- Log4Shellインシデントに対する事前定義されたガイドラインの使用をトリガーする。
- 強化されたトリアージコンテキストには、詳細な攻撃チェーン分析と影響を受けるアプリケーションコンポーネントが含まれる。
- Contrast ADRは、SIEM(セキュリティ情報/イベント管理)やXDR(拡張型の検知と対応)のシステムと統合し、より効果的なインシデント分析のためにアプリケーション層のコンテキストを含む強化されたアラートを提供する。
修復
- 攻撃の試みに関する詳細なフォレンジックデータは、インシデントの調査をサポートする。
- アプリケーションポートフォリオ全体の潜在的な侵害の全範囲を特定するのに役立つ。
- インシデント後の分析により、検知機能と保護機能を向上させる。
- データは、将来の同様のインシデントを防ぐのに役立つ根本原因分析をサポートする。
この対応を通じて、Contrast ADRシステムは継続的な監視を維持し、セキュリティダッシュボードにリアルタイムのアップデートを提供し、すべての検知・対応アクションを文書化することでコンプライアンスレポートをサポートする。
教訓
8月にブロックした攻撃回数に加えて、いくつかの教訓を得た。もちろん、4万7000回というブロックされた攻撃の数から抽出できる洞察はたくさんある。 大きな教訓が3つある。
- コードの品質はまだ劣っている。そもそも脆弱性が存在しなければ、このような悪用の試みは見られない。
- Log4jはまだシステムを苦しめている。もう3年になる。どうなっているのか。
- 3年前に悩まされたLog4Shell呼ばれるLog4jの脆弱性によるJNDIインジェクション攻撃は、今も続いている。私たちはまだ業界としてそれを理解していない。
「弊社の分析では、JNDIトラフィックがまだ入ってきているのがわかります。つまり、まだ悪用される可能性があるということです。」と、Contrast Securityの製品セキュリティ担当シニアディレクターのNaomi Buckwalterは警告する。
Contrast ADRが、Log4ShellのようなリアルタイムAppSec攻撃の検知・対応能力をどのように向上させるかについては、Contrast ADRのデモをリクエストして欲しい。
関連記事/サイト:d more: