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のルール、条件の見直し
にて、対策しようと思います。
続きはまた別の記事で。