私のAWS Elastic BeanstalkサーバーはしばしばEnvironment health has transitioned from Ok to Severe. 100.0 % of the requests are erroring with HTTP 4xx.
これは、一度に数分間、ほぼ毎日発生します。また、ngnixエラーログに以下のログが見つかりました。これは何?それらはある種のDOS攻撃ですか?そのうちのいくつかのIPアドレスを調べたところ、Amazonデータセンターからのものであることがわかりました。これが私がむしろ避けたいものである場合、正当なユーザーへのトラフィックをブロックせずにそれを行う方法はありますか?
サーバーの状態とこれらのエラーのタイムスタンプは対応していないようです。
> 2019/07/31 16:53:51 [error] 26340#0: *242697 client intended to send
> too large body: 4294967295 bytes, client: 172.31.12.183, server: ,
> request: "GET /msdn.cpp HTTP/1.1", Host: "35.183.225.3" 2019/08/01
> 01:45:12 [error] 26340#0: *250681 client intended to send too large
> body: 4294967295 bytes, client: 172.31.30.80, server: , request: "GET
> /msdn.cpp HTTP/1.1", Host: "35.182.179.84" 2019/08/08 13:18:17 [error]
> 26340#0: *414178 client intended to send too large body: 4294967295
> bytes, client: 172.31.12.183, server: , request: "GET /msdn.cpp
> HTTP/1.1", Host: "35.183.225.3" 2019/08/08 16:12:57 [error] 26340#0:
> *416902 client intended to send too large body: 4294967295 bytes, client: 172.31.30.80, server: , request: "GET /msdn.cpp HTTP/1.1",
> Host: "35.182.179.84" 2019/08/19 20:38:21 [error] 26340#0: *662525
> client intended to send too large body: 4294967295 bytes, client:
> 172.31.12.183, server: , request: "GET /msdn.cpp HTTP/1.1", Host: "35.183.225.3" 2019/08/20 04:01:45 [error] 26340#0: *669529 client
> intended to send too large body: 4294967295 bytes, client:
> 172.31.30.80, server: , request: "GET /msdn.cpp HTTP/1.1", Host: "35.182.179.84" 2019/09/17 08:16:14 [error] 26340#0: *1282762 client
> intended to send too large body: 4294967295 bytes, client:
> 172.31.12.183, server: , request: "GET /msdn.cpp HTTP/1.1", Host: "35.183.225.3" 2019/09/17 11:22:36 [error] 26340#0: *1285562 client
> intended to send too large body: 4294967295 bytes, client:
> 172.31.30.80, server: , request: "GET /msdn.cpp HTTP/1.1", Host: "35.182.179.84" 2019/09/24 16:37:53 [error] 26340#0: *1442933 client
> intended to send too large body: 4294967295 bytes, client:
> 172.31.12.183, server: , request: "GET /msdn.cpp HTTP/1.1", Host: "35.183.225.3" 2019/09/24 23:22:03 [error] 26340#0: *1449079 client
> intended to send too large body: 4294967295 bytes, client:
> 172.31.30.80, server: , request: "GET /msdn.cpp HTTP/1.1", Host: "35.182.179.84"
AFAICSは心配する必要はありません。
これはNginXに影響を与えない攻撃のようです。また、私はこれが標的型攻撃であるとは思いません。私のWebサーバーでも同様のリクエストを確認できるからです。したがって、どこかで何かを悪用するこれらの自動化された脆弱性スキャンの一部のように見えます。
GET
リクエストには本文がないため、-1の content-length
は 表現選択用 です。したがって、これは小さなGET
リクエストであり、誰かが4 GBをサイトにアップロードしようとしたことを示すものではありませんでした。
GET
の場合、このタイプの要求は「4294967295バイトの本文を送信したい」という意味ではなく、サーバーが明らかに拒否した「4294967295バイトで応答してください」という要求です。
また、4294967295
は、32ビット符号付き整数の場合は0xffffffff
または-1
であるため、32ビットでは、攻撃されたスクリプトで何らかのDoSまたは任意の種類のNULLポインターの問題が発生する可能性があります。 64ビットの場合でも、msdn.cpp
がcontent-length
を解釈すると誤動作する可能性があります。
ちらっと見ただけで、msdn.cpp
という名前のファイルのソースがWeb上に見つからなかったことに注意してください。そのため、広く展開される可能性は低いです。
したがって、このようなリクエストは、msdn.cpp
として難読化されている、すでにインストールされているバックドアを見つけるための手段となる場合があります。ダイヤルアップ回線の背後にあるNAS/IoTデバイスに存在する場合、IPアドレスが毎日変更される可能性があるため、誰かがWeb全体をスキャンして検索したいと思うかもしれません。
スキャンするIPv4アドレスは約30億個だけです。したがって、1秒あたり1000リクエストのクエリレートを持つ50台のマシンでIPv4スペース全体をわずか1日でスキャンできます。1000リクエスト/秒(各1 KB)は、マシンあたり約1 MiB /秒の中程度のアップリンクで十分です。
ボットネットがこれを行う必要はありません。 VM 10個の場合、1日あたり約1ドルかかります。簡単です。