現在、HTTPサーバーに対して404リクエストを実行しているTorノードから攻撃されています。これは1つのIPからのものですが、DROP iptablesルールを使用すると、数秒で別のIPから再び開始されます。
それはcgi-binフォルダーへのリクエストを要求し始めましたが、今私の画像フォルダーでリクエストを行っています。だから私の調査に基づいてそれは何かを探しているTORに接続されたツールであり、今それは私を怒らせます。
Fail2ban、mod_evasive、mod_securityを試してみましたが、これらのプログラムは、反対側が1つのものを探しているか、1つのポートのドアを叩いているときにトリガーされます。しかし、このツールは別のファイルに対するすべてのリクエストを調べています。
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgsupport.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgppexg.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgppantivirussoft.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgwin95.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgnws.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgroundcorner.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgppcdl.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/yellowbuy3.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgvirusinfo.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/escan4.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgredline.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgonlinescan.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/ram1.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgmanualscan.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/userdefine.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/betterinterface.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
特定の.phpファイルのフォルダー画像を探しているのがわかりますが、すべてのリクエストで別のphpファイルを探しています。それで、これは一体何をしているのですか?
これも帯域幅を浪費するので、今やらなければならないことは本当に必死です。誰でもこれをどのようにブロックできるか考えていますか?
サーバーのセットアップ:CentOS 7(OpenVZなので、ipsetが機能していないカーネルで立ち往生しています)とApache。
Ipテーブルを使用する場合は、torノードからのパケットをまとめてドロップできます。 torノードのリストは次の場所にあります。
参照1: https://check.torproject.org/cgi-bin/TorBulkExitList.py
参照2: https://www.dan.me.uk/tornodes
これは、torからWebサーバーへのすべてのトラフィックをブロックするbash one linerです。現在、ポート80をサポートするオンラインのトーアノードは約2000あります。したがって、かなりの数のiptableを挿入することになりますが、これは実際には長期的な修正とは言えませんが、攻撃を停止する必要があります。
wget "https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=8.8.8.8&port=" -O /tmp/ip.lst && sed -i -e '1,3d' /tmp/ip.lst && for i in $(cat /tmp/ip.lst); do iptables -A INPUT -p tcp -s $i --match multiport --dports 80,443 -j DROP; done
特定の文字列を含み、すべてのリクエストに含まれるパケットをドロップできます: 'HEAD // images /'文字列。
とりあえず、次のルールを削除してください。
iptables -I INPUT -p tcp --dport 80 -m string --algo bm --string 'HEAD //images/' -j DROP
私のWebサーバーには常にこれがあり、何ヶ月もログを調べた結果、最終的に求められるものが100種類もあることがわかりました。
何千ものボットネットワークの1つが、脆弱なコンポーネントのApacheをマッピングしています。幸運になることを望んでおり、悪用方法を知っている共通のコンポーネントがあります。ボットは常にphpmyadminを検索します。他の何十ものものと一緒に。
もちろん、運が良ければ、最終的にはさらに悪いものを配備して、コンピューターを自分の悪質な行為に使用できるようにするでしょう。
最新のカーネルをインストールできるもので仮想化して、ipsetを使用できるようにします。たぶんKVM、dockerは組み込みのカーネルを使用しているので、それは良くありません。
ボットネットはおそらく数万台のコンピューターであり、特にipsetなしでは効果的にこれをブロックすることはできません。
また、TORを使用している限り、ランダムな人々からのさらに多くのIPアドレスにアクセスできます。
オプション#2
HTTP_NOT_FOUND.html.varファイルが見つかりました。少なくとも私のシステムでは/ usr/share/Apache2/errorが見つかりました
HTTP_NOT_FOUND.html.var.phpファイルを作成してから、Apacheファイル/etc/Apache2/errors.confを変更して、このファイルを指すようにすることができます。
その後、最初の試行が最後になります。
セキュリティモデルがサードパーティへのトラフィックの受け渡しを許可している場合、最も簡単で効果的なソリューションは、アプリケーションの前に Cloudflare を付けることです。この記事の執筆時点では、CAPTCHAページを解決しない限り、CloudflareはすべてのTor接続を自動的にブロックします。また、攻撃者がサーバーの帯域幅を消費しないようにサーバーに到達する前にトラフィックをさらにフィルターするように構成できるWebアプリケーションファイアウォールも備えています。
それ以外の場合は、 fail2ban を構成することで運が良いかもしれません。 fail2banは、誰かが認証に何度も失敗したときにOSファイアウォールポリシーを変更することで一時的なIPブロックを行うソフトウェアです。あなたの場合、認証の失敗は404-ingを保持している誰かです。
まず、慌てる必要はありません。必ずタオルをお持ちください。
あなたが提供した情報から、私はあなたが攻撃されているとは思わず、スキャンされただけです。最近、これは「正常な」動作であり、定期的に目にする可能性が高いものです。誰かがあなたの関節を包み、開いている窓や鍵のかかっていないドアを探していると考えてください。彼らは、エントリを取得するために使用できる簡単な方法があるかどうかを調べているだけです。
脆弱性のあるシステムを探すためにインターネットをスキャンするだけのボットネットとして、そこには多くのスクリプトとツールがあります。これがより深刻なものへの前置きであるかどうかは、(まだ)決定することはほとんど不可能です。多くのことは、サイトが価値があると思われるかどうか、およびシステムがどの程度最新であるかによって異なります。
あなたはこのトラフィックがあなたの帯域幅を殺していると言います。これらのリクエストは非常に軽量であるため、低帯域幅のシステムでWebサーバーを実行していると思われます。つまり、HEADリクエストです。これが当てはまる場合は、サーバーを実行することが実際に良いアイデアであるかどうかを再考してください。
インターネットにサーバーを置くとき、あなたは公共の何かを置くことになります-あなたは言っています"ちょっと、私はここにサーバーを持っています、来て見てください"。あなたは誰かが来るときのために準備する必要があり、あなたは誰が来るのか制御できません。この種のトラフィックをブロックしようとすると、あなたは怒ります-許可すると、「もぐらたたき」のゲームになってしまいます。このレベルのトラフィックをブロックしようとしないでください。ブロックするとすぐに、別のIPアドレスから似たようなものを取得する可能性があります。ホイールを回転させてフィルターを作成し、ファイアウォールを調整します。
サーバーをセットアップしてWebに配置することは、最近では簡単な作業です。ただし、そのようなシステムの管理はそうではなく、注意深く検討する必要があります。家庭や中小企業のDSLリンクなどの終端にあるサーバーに配置することは、ほとんどの場合悪い考えです。帯域幅に影響を与える可能性が高く、管理に予想以上の時間がかかることが多く、堅牢で信頼性の高いサービスを提供するために必要な基盤となるインフラストラクチャがありそうにありません。
私の提案は、さまざまなホスティングサービスの1つでWebサービスをホストすることを検討することです。多種多様な選択肢があり、サービスとしての低レベルのインフラストラクチャ(IaaS)からサービスとしてのプラットフォーム(PaaS)やサービスとしてのソフトウェア(SaaS)に至るまで、ほぼ確実にニーズを満たすものが見つかります。各サービスは、さまざまなレベルの柔軟性とコストから選択できます。十分な調査を行うことで、コストと機能の適切なバランスで何かを見つけることができます。
あなたがあなたのサービスをホストするために支払いたくないなら、あなたは本当にあなたが何をしているのかを再考する必要があります。ホスティングのすべての形式に関連するコストがあります。違いは、それらのコストがどのように吸収されるかです-お金で支払うか、時間と自分のリソースで支払うかのどちらかです。