nginx errorが急増してたので確認すると攻撃を受けていました

この記事は約3分で読めます。
スポンサーリンク

Originサーバーに直接攻撃を受けていました

1ヶ月ほど前より、AWS CloudWatch LogsエージェントでAmazon EC2上のNginxのaccess.log , error.log , php-fpm error.log , Linuxのmessages , secureログを収集する
を参考にし、EC2上のログを収集するようにしてみました。
※いつもありがとうございます。

収集当初は特に問題なかったのですが、2週間ほど前からNginxのerror.logが急増していました。

Logを見てみると、OriginサーバーのAレコード(IPアドレス)に向け直接攻撃をしている事が分かりました。

2018/10/30 02:12:21 [error] 2571#2571: *1145 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 54.38.213.78, server: _, request: "GET /phpMyAdmin/scripts/setup.php HTTP/1.0", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "OriginServerのIPアドレス"

Originサーバーのセキュリティグループの設定ですが、現状http/httpsのインバウンド制限は掛けておりません。
表門(CloudFront)側はWAFと連携しているのでそれなりに防御できていますが、裏門は開放状態(意図的にOriginはDMZ配置にしていましたが)なので当然直接攻撃を受ける訳です。

スポンサーリンク

対策

攻撃対象(動かそうとしているサービス)は、phpmyadmin,mysql などOriginサーバーで動かしていないものばかりなので被害はありませんが、セキュリティホールが存在する状態は好ましくないので、対策を行い攻撃者に403エラーを拝んで頂こうと思います。

Originサーバーのセキュリティグループのインバウンド設定で、http/httpsのプロトコルはCloudFrontからのみ許可する…としたいところですが、AWSの仕様上、CloudFrontにセキュリティグループの設定項目が無いため、Originサーバー側でCloudFrontwo指定する事が出来ません。
ただし、ELB(ALB)は指定可能なので、

  • http/httpsプロトコルは必ずCloudFront->WAF->ELBを経由させる
  • ELBへの直接アクセスを制限する
  • WAFのルール、条件の見直し

にて、対策しようと思います。

続きはまた別の記事で。