11
Help us understand the problem. What are the problem?

posted at

updated at

本番環境でやらかしちゃったかもしれない話 2021-12-22

本番環境でやらかしちゃったかもしれない話

本番環境でやらかしちゃった人 Advent Calendar 2021 22日目。

log4jの脆弱性CVE-2021-44228を狙った攻撃が多発していますね。
ご存知の方も多いと思いますが、私のサーバにもこの日(12/10)から多くの攻撃者が訪れています。

FortiGuard Labs Weekly Threat Briefsでは、毎週どんな攻撃が流行っていたのか、週ごとにまとめて紹介しています。12/17掲載記事

Log4j.Error.Log.Remote.Code.Execution が初登場で 検出数で1位を獲得しました。ThinkPHPやPHPUnitなど、昨年春からTOP5に鎮座していた競合からトップを奪取しました。すごいことです。

今回は、なんとlog4jさんのノック攻撃に返信してしまい、さらなる攻撃(第二波、第三波...)を受けるという失態を犯してしまいました。
皆さんも、サイバー問題を調査する際には、十分に注意してください。

TL;DR

  • 実際に受け取った攻撃コードから攻撃を調査するために、log4jへの攻撃が成功したと仮定し、攻撃コードを実行する。
  • 攻撃者が用意したサイトにアクセスすると、攻撃用のJavaシリアライズコードが降ってくる。
  • 被害サーバが特定されたことで、さらなる攻撃にさらされることになります。

Log4j Vulnerability Summary はじめに。

Log4j exploitはUser-Agentとpathを利用する。

Log4jの攻撃コードは単純で、log4jがログとして食べれば HTTPリクエストのどこでも 成功します.

そのため、一般公開されているWebサーバを運用している場合、アクセスログに大量に記録され、誰でも簡単に入手・閲覧することが可能です。

試してみたくなるようなコード実行

この攻撃の詳細については、Juniperのブログなどもそうであるように、多くのブログで紹介されています。

サーバーに配信された攻撃コードだけでなく、攻撃者がどのような攻撃を仕掛けてくるかを確認するのもよいでしょう。
調べる最も簡単な方法は、 ldap://example.com:389/... で始まるURLを追加することである。最も簡単な確認方法は、実際に ldap://example.com:389/... などで始まる URL を curl コマンドでリクエストしてみることです。

しかし、ここには大きな罠があります。

攻撃者が待ち受ける場所

攻撃者がサーバーに仕掛けたものには、主に2つのパターンがあるようです。

  1. LDAPには、シリアライズされたJavaオブジェクトを保存するためのスキーマが定義されています。http://www.zytrax.com/books/ldap/ape/java.html
  2. 被害にあったサーバーをノックして反応があれば、第2波、第3波の実攻撃を仕掛けるための罠を仕掛けている。

2番目の攻撃を仕掛けるときは、LDAPではなくDNSをターゲットにしようとするはずです。

LDAPの場合、インターネットへの通信がWebサーバーから発信される可能性は極めて低いので、ファイアウォールでブロックされることが多いのですが、DNSの場合、Webサーバーから発信される可能性は低いので、ファイアウォールでブロックされることはありません。しかし、DNSの場合、DNSの問い合わせはファイアウォール内のDNSキャッシュサーバーを経由してインターネット側へ発信されることになる。

攻撃者が用意した権威あるサーバにDNSクエリが届けば、被害サーバは応答したことになり、ターゲットにLog4jの脆弱性があることを知られることになります。

では、攻撃コード(exploit)を実行する場合...

攻撃者のサーバーへの対応としてエクスプロイトコードを試す場合、TorなどでPCを匿名化してガードするのは当然ですが、本番サーバーに届いたコードを解析せずにそのまま実行しないようにしましょう。

どんな情報がついているのかわからないままコードを実行すると、報復ではないにしろ、とんでもない攻撃を招いてしまうかもしれません。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
11
Help us understand the problem. What are the problem?