自サーバで海外からの怪しいアクセスを確認したのでブロックをしてみた。
個人的な判断基準とコマンドを参考程度に記載しておく
■前提
AWS上で立てたwebサーバ。HTTP/HTTPSのみ開放している。
ドキュメントルート以下にBasic認証を設定。(個人利用目的のページである為)
①アクセス数の多いアクセス元IPを確認する。
cat access_log | awk '{print$1}' | sort | uniq -c | sort -nr | head
②明らかに数値の多いIPのアクセス先ファイルを確認する。
※ぶっちゃけるとBasic認証をかけているサイトなので、自分以外の複数回アクセスは全て怪しいアクセスになるのだが、攻撃者がどういう攻撃を仕掛けてきてるか見ている。
攻撃パターン1:普通にBasic認証を総当たりで突破を試みている。
grep '<怪しいIPアドレス>' access_log | awk '{print$7}' | sort | uniq -c | sort -nr | head
113 /
→ ドキュメントルートへのアクセスのみ。ログ内容を見ると全て301,401エラー。
突破できずにあきらめたっぽい。
攻撃パターン2:特定プログラム固有ファイルの脆弱性をついた不正アクセス
grep '<怪しいIPアドレス>' access_log | awk '{print$7}' | sort | uniq -c | sort -nr | head
10 /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
5 /?XDEBUG_SESSION_START=phpstorm
5 /wp-content/plugins/wp-file-manager/readme.txt
5 /solr/admin/info/system?wt=json
5 /index.php?s=/Index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21
5 /_ignition/execute-solution
5 /console/
5 /Autodiscover/Autodiscover.xml
5 /api/jsonws/invoke
5 /?a=fetch&content=<php>die(@md5(HelloThinkCMF))</php>
wordpressとかはよく狙われてるイメージ。
https://www.webgogo.jp/index.php/news/211
※自サーバではそもそも使ってないor存在しないファイルだったので、全部401エラーだったようだ
grep '<怪しいIPアドレス>' access_log | grep -v 'HTTP/1.1" 401'
対策
そのまま放置して、変なことをされても困るので怪しいIPは一通りiptablesでブロック(Drop)しておいた。sudo iptables -A INPUT -s <怪しいIPアドレス> -j DROP