質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

3回答

2425閲覧

ローカル環境のウェブサーバ(Dockerコンテナ)に外部IPから攻撃をうけた場合の対処

退会済みユーザー

退会済みユーザー

総合スコア0

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

1クリップ

投稿2020/08/18 02:45

編集2020/08/20 13:02

Macbookのローカル環境で nginx-proxy のコンテナを動かしていたところ、外部のIPから攻撃を受けたようなログが記録されました。

20200820 追記ここから >>>>>

dameo様の質問を見てふと調べてみたのですが、
どうも xxx.yyy.zzz.180 はローカルネットワークが使用しているデフォルトゲートウェイに割り当てられたIPアドレスのようでした。

bash

1$ curl ifconfig.io 2xxx.yyy.zzz.180

ブラウザにIPを直打ちすると該当のログと同様のログが記録されます。

NginxAccessLog

1nginx-proxy | nginx.1 | xxx.yyy.zzz.180 172.26.0.1 - - [20/Aug/2020:08:28:35 +0000] "GET / HTTP/1.1" 503 599 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36" 2nginx-proxy | nginx.1 | xxx.yyy.zzz.180 172.26.0.1 - - [20/Aug/2020:08:28:35 +0000] "GET /favicon.ico HTTP/1.1" 503 599 "http://xxx.yyy.zzz.180/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36"

スマートフォンのモバイルネットワーク経由アクセスしても同様にログが出力されるので、どうもIP直打ちすると外部ネットワークからローカルネットワーク内のウェブサーバにアクセスできてしまう状態のようです。
自宅WiFiのルーターはこのような挙動が一般的なのでしょうか?

<<<<< 20200820 追記ここまで

NginxAccessLog

1nginx-proxy | nginx.1 | xxx.yyy.zzz.180 172.19.0.1 - - [18/Aug/2020:02:21:06 +0000] "GET /TP/public/index.php HTTP/1.1" 503 197 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6)" 2nginx-proxy | nginx.1 | xxx.yyy.zzz.180 172.19.0.1 - - [18/Aug/2020:02:21:07 +0000] "GET /TP/index.php HTTP/1.1" 503 197 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6)" 3nginx-proxy | nginx.1 | xxx.yyy.zzz.180 172.19.0.1 - - [18/Aug/2020:02:21:07 +0000] "GET /thinkphp/html/public/index.php HTTP/1.1" 503 197 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6)" 4nginx-proxy | nginx.1 | xxx.yyy.zzz.180 172.19.0.1 - - [18/Aug/2020:02:21:07 +0000] "GET /html/public/index.php HTTP/1.1" 503 197 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6)" 5nginx-proxy | nginx.1 | xxx.yyy.zzz.180 172.19.0.1 - - [18/Aug/2020:02:21:07 +0000] "GET /public/index.php HTTP/1.1" 503 197 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6)" 6nginx-proxy | nginx.1 | xxx.yyy.zzz.180 172.19.0.1 - - [18/Aug/2020:02:21:08 +0000] "GET /TP/html/public/index.php HTTP/1.1" 503 197 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6)" 7nginx-proxy | nginx.1 | xxx.yyy.zzz.180 172.19.0.1 - - [18/Aug/2020:02:21:09 +0000] "GET /elrekt.php HTTP/1.1" 503 197 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6)" 8nginx-proxy | nginx.1 | xxx.yyy.zzz.180 172.19.0.1 - - [18/Aug/2020:02:21:09 +0000] "GET /index.php HTTP/1.1" 503 197 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6)" 9nginx-proxy | nginx.1 | xxx.yyy.zzz.180 172.19.0.1 - - [18/Aug/2020:02:21:11 +0000] "GET / HTTP/1.1" 503 197 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6)"

該当のDockerコンテナは開発用に動作させており、Macbookのブラウザから http://localhost で接続することを想定しております。(外部からのアクセスを想定していません。)

いままでローカル環境は安全だと思っていたのですが、このような攻撃を受けた場合どのような対策を行えば良いでしょうか。

バックドアのようなものがローカルネットワーク内に既に存在しているのか、もしくはゲートウェイの設定に不足があるのかなど、調べてみたのですが判断できませんでした。

  • 使用デバイス: MacOS Catalina v10.15.5
  • docker desktop community: v2.3.0.4 (46911)

DockerComposeYml

1version: "3.7" 2 3services: 4 admin-app-server: 5 image: "nginx:1.18" 6 container_name: "admin-app-server" 7 env_file: 8 - ".env" 9 volumes: 10 - "./nginx/nginx.conf:/etc/nginx/nginx.conf" 11 - "./nginx/conf.d:/etc/nginx/conf.d" 12 - "./nginx/certs:/etc/nginx/certs" 13 - "./app:/usr/share/nginx/html" 14 networks: 15 reverse-proxy-network: 16 17 nginx-proxy: 18 image: "jwilder/nginx-proxy" 19 container_name: "nginx-proxy" 20 ports: 21 - "80:80" 22 volumes: 23 - "/var/run/docker.sock:/tmp/docker.sock:ro" 24 networks: 25 reverse-proxy-network: 26 27networks: 28 reverse-proxy-network:

20200820 追記ここから >>>>>

該当ログを出力しているNginxの設定ファイルです。

NginxConf

1user nginx; 2worker_processes auto; 3 4error_log /var/log/nginx/error.log warn; 5pid /var/run/nginx.pid; 6 7 8events { 9 worker_connections 1024; 10} 11 12 13http { 14 include /etc/nginx/mime.types; 15 default_type application/octet-stream; 16 17 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 18 '$status $body_bytes_sent "$http_referer" ' 19 '"$http_user_agent" "$http_x_forwarded_for"'; 20 21 access_log /var/log/nginx/access.log main; 22 23 sendfile on; 24 #tcp_nopush on; 25 26 keepalive_timeout 65; 27 28 #gzip on; 29 30 include /etc/nginx/conf.d/*.conf; 31} 32daemon off;

<<<<< 20200820 追記ここまで

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/08/18 22:18

> いままでローカル環境は安全だと思っていたのですが、このような攻撃を受けた場合どのような対策を行えば良いでしょうか。 ローカルネットワークにグローバル IP が届くといった構成が理解できません。 質問の用語定義にズレがあるか、ネットワーク構成がごく珍しいものでない限り、届くことは無いです。 ネットワーク構成図(論理/物理)を追記することは可能でしょうか?
退会済みユーザー

退会済みユーザー

2020/08/19 04:03

te2ji様 ありがとうございます。 > ローカルネットワークにグローバル IP が届くといった構成が理解できません。 おっしゃる通り僕もよくわからないです、、、 特別なネットワーク構成やVPN設定をしているわけではなく、自宅のWiFiに繋がっているノートパソコン上でDockerを起動し、コンテナの80番ポートをホストの80番ポートに紐づけている状態です。
dameo

2020/08/19 20:58

125.4.237.180=>?????.zaq.ne.jpみたいなので、国内のISPのIPのようですね。 イタズラ者に天誅を下すために、届け出してもいいかもです。 その人も被害者かもしれませんが。
退会済みユーザー

退会済みユーザー

2020/08/20 13:02 編集

dameo様 ありがとうございます。 質問本文に追記しましたがxxx.yyy.zzz.180は自分のIPでした、、、
dameo

2020/08/20 08:46

やはりそうなりましたか 自分でやったのでなければ届け出だけ出しておけばいいのでは? 犯罪なので
guest

回答3

0

ベストアンサー

契約プロバイダからリースされているルーターの「UPnP(Universal Plug and Play)設定」を無効にすることで、グローバルIPを直打ちしても、ローカルネットワーク内のDockerコンテナにアクセスが届くことは無くなりました。

原因はUPnPポートマップに、MacbookのローカルIPアドレスの全ポートがマッピングされていたことでした。

スクリーンショットを残さずにUPnP設定を無効にしてしまったので、正確な設定内容が残っていないのと、UPnPの設定方法がよくわからず、問題の再現ができていないのですが、本質問のコア部分(ローカル環境のウェブサーバ(Dockerコンテナ)に外部IPから攻撃をうけた場合の対処)は解決したのでクローズしたいと思います。

質問及び回答をくださった皆様、ありがとうございました。

投稿2020/08/20 14:29

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

何かアプリを(インターネットの)世界に向けて公開している限りこのような探索型攻撃(攻撃の初期段階)を受けます。もし、攻撃者が初期攻撃で手ごたえを得たならば、その後立て続けに次の段階の攻撃を進めると思います。

対策いろいろありますのが、各層(アプリ、ミドル、OS、ネットワーク、ハードウエア)に分かれてそれぞれ対策をします。

  • 脆弱性があるようなプログラムになっていないこと。
  • ミドルウェアやそのプラグインの設定、バージョンに脆弱性がないこと。
  • OSの設定やバージョンに脆弱性がないこと。
  • 公開しているアプリが一部の接続元のみの場合は、接続元を制限する。
  • 通信をSSL化する。
  • ルータのファイアウォール機能で不必要な通信をブロックする。

 また、通信ログはしっかり押さえておくこと。問題発生時にログがすべての頼りになります。

  • ポートを変える。

 →ポートスキャンする攻撃もあります。

  • プロキシをかませているような構成の場合は、リクエスト元のIPがログに出力されるように設定する。

 そうすることで内部からのリクエストなのか、外部からのリクエストかで判断がつくかと思います。

  • HWレベルで脆弱性がないこと。
    例えば、何年か前にIntel CPUに脆弱性が見つかった問題など。結果的にOS側で対応された。
  • クラウドサービスを利用する。

 IaaS、PaaS、SaaSなどを使うことで下位層のメンテ(セキュリティや更新など)をしなくてもサービス提供者側が担保してくれる。
例えば、IaaSならHWレベルはサービス提供者が責任持つので、その上の部分が利用者が責任持って担保することです。

  • WAFを利用する。

 Webアプリの前に構えることで様々な攻撃をブロックする役割をします。
また、新しく見つかった脆弱性への対応が間に合わない時もWAFが防御してくれるおかげで対応するまでに猶予が生まれます。
今回のような自宅のMacでサービス公開している場合は、導入難しいかもしれない。

ざっとこんな感じです。

投稿2020/08/18 15:54

編集2020/08/18 15:55
comefigo

総合スコア1045

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

環境が分からないのでざっくりとしかわかりませんが
ThinkPHPの脆弱性を狙った攻撃のようですね。
まずは被害の有無、通信経路、の調査かなって思います。

設定等をみても判断つかないのでしたら、
パケットアナライザでパケットを取りながら、再発するまで待つしか無いかと思います。

投稿2020/08/18 09:21

take88

総合スコア1379

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問