私はまだドメインなしでDigital Oceanにサイトを設定したので、IPしかありません。その存在を誰にも告げたり宣伝したりしていませんが、fail2banから、さまざまなIPがSSLポートをハッキングしようとしている、またはPHPファイルを探している)との何百もの通知を受け取ります。
しかし、彼らは私が存在することをどうやって知るのでしょうか?彼らはどこからIPを取得しますか?
@DeerHunterが言ったことのほとんど。インターネット全体をスキャンするのは簡単です。必要に応じて、オンラインにある既知のすべてのDigital Oceanドロップレットをターゲットにすることができます。
彼らはタイマーでこれを行うことができるので、オフラインまたはオンラインにしたときに、すぐに脆弱になる可能性のある高価値のターゲットである可能性があるため、試行を続けます。
非常に大まかなのコーディング例を紹介しましょう。あなたのIPアドレスが104.16.25.255であるとしましょう。 www.digitalocean.comのIPアドレスを取得して、関連するIPアドレスを簡単に確認できるようにします。 www.digitalocean.comは104.16.25.4を返します。すべてをスキャンしましょう:104.16.25。*
近くにある関連付けられたすべてのIPアドレスを探して見つけたいとしましょう。プログラムが数値とパターンを非常にうまく処理できると仮定します。次に、インクリメントされる整数の例を示します。
_i++;
_
これにより、i
の現在の値が_1
_だけ増分されます。 i
が_1
_で始まると仮定しましょう。 _i++
_の後に_2
_が表示されます。この痛々しいほど単純なループを確認してください。
_for (int i = 1; i < 256; i++)
{
scanIpAddress("104.16.25." + i);
}
_
代替の1行のbashバリアントは次のようになります。
_for ip in `seq 1 255`; do scan_thingy_command 192.168.0.$ip --options -oG lol.txt; done
_
104.16.25.1をスキャンし、i
を_0
_から_1
_に変更しました。ループ全体が続くと、104.16.25.0から104.16.25.255。今スキャンして見る時間はありませんが、この小さなブロックがjustに属していない可能性がありますdigitalocean。
DigitalOceanでより多くのターゲットを見つけるために、プログラマーは数値をさらに変更する場合があります。たとえば、前述のループを内側にネストする別のループを導入し、j
:scanIpAddress("104.16." + j + "." + i);
を追加します。これにより、_104.16.1-255.1-255
_をスキャンできるようになります。
そこから、インターネット全体を取得するまで、ループを逆方向にネストしてネストし続けることができます。これには、masscanなどの他のより効率的な方法がありますが、これが最も基本的な方法です。
繰り返しますが、これはコマンドラインで1行で行うこともできます。
_for oct1 in `seq 1 255`; do for oct2 in `seq 1 255`; do for oct3 in `seq 1 255`; do for oct4 in `seq 1 255`; do scan $oct1.$oct2.$oct3.$oct4 --stuff; done; done; done; done
_
上記の例は本当にroughの例でした。彼らはより多くをしているかもしれず、彼らのコードは異なるかもしれません、そして彼らは完全に異なる方法やプログラムを使用しているかもしれません。ただし、コンセプトはほとんど同じです。
また、問題のプログラムが単にeveryoneをターゲットにしている可能性もあります。
オンラインの場合は、何を隠していても、彼らはそれを見つけるでしょう...またはそれを見つけようとします。
ただし、Webサーバーによっては、_.htaccess
_などの httpアクセス制御 を試すことができます。アクセス制御を使用している場合(これもWebサーバーによって異なります)、他のユーザーがviewing/accessingページからアクセスできないようにすることができる可能性があります。
ただし、Webサイト以外のログイン試行から保護することはできません。 そして、存在しないWebページへのアクセスを拒否している場合、彼らはあなたが実際にオンラインであることを認識し、攻撃をより簡単に集中させることができます!ただし、それはstill良い習慣です。
Apache(2.4以降)の_.htaccess
_ denyの例を次に示します。
_Require ip 192.168.1.100
_
上記の例では、IPアドレスを除いて、そのフォルダーへのすべてのアクセスを拒否しています。 192.168.1.100はローカルIPアドレスです。これをパブリックIPアドレスに置き換える必要があります。
また、攻撃者がマシンでプロキシ/ VPNを実行している場合でも、theyはそれらのページにアクセスできます。攻撃者がWebサイトへのアクセス権を既に持っている場合、攻撃者は.htaccessを編集するか削除することができます。 100%はありません。
スキャンする準備ができていない場合は、何もオンラインにしないでください。彼らは口の中でポートスキャンされるまで誰もが計画を持っています。
IPv4 アドレススペース は、4,294,967,296アドレスのみに制限されています。【注1】 十分な帯域幅がある場合、特に何千ものハッキングされたデバイスで構成されるボットネットの所有者である場合、そこにあるすべてのIPアドレスをスキャンすることは簡単です。
IPv6を使用【注2】、物事は少しトリッキーです: 0,000,000,000,000,000,000,000,000,000,000,000,000以上のアドレス を使用すると、それらすべてを列挙することは非現実的になります。ただし、アドレスを検出するためのさまざまな手段がまだあります。たとえば、最近のケースでは モノのインターネット検索エンジンShodanが検出されました NTPサーバーを使用して、クロックを同期したときに新しいIPv6ホストを発見しました。
この要点:調査する準備ができていない場合は、インターネットに接続してはなりません。 IPv4インターネット全体をスキャンできます 数日で 。IPv6アドレスもまったく使用しない限り、同様に検出されます。
注1:これらのいくつかは、特別な目的のために予約されているため利用できません。
注2:IPv6は、Digital Oceanユーザーのみが使用できます 有効にした場合 。
しかし、彼らは私が存在することをどうやって知るのでしょうか?
あなたが存在することを彼らは知らない。彼らは、自分が話していることを知らないあなた:彼らは、特定のIPアドレスを持つコンピューターと話していることを知っているだけです。 IPアドレスは電話番号によく似ています。正当な市外局番の後に、適切な桁数の乱数を続けてダイヤルすると、特に市外局番に多くの加入者がいる場合、誰かと話すことができる可能性がかなり高くなります。それはあなたが「その人が存在することを知っていた」という意味ではありません。それはあなたが彼らの電話番号が接続されていることを知ったということだけを意味します。
彼らはどこからIPを取得しますか?
彼らはどこからもそれを手に入れません。これは32ビットの数値であり、実際にはそれほど多くありません。 134.183.96.2、IPアドレスです。キーボードをつぶして(無効な数字を削除して)取得しました。ほとんどすべてのIPアドレスが所有しているため、おそらく誰かに属しています。悪意のあるユーザーは、体系的にアドレススペースをスキャンします。 「見つける」とは「十分な数の有効な数値を生成する」ことを意味するため、IPアドレスを見つけることができます。
しかし、彼らは私が存在することをどうやって知るのでしょうか?
スキャナーが指示しているため、そのIPアドレスに何かが存在することを知っています。ほとんどの場合、彼らはあなたを探しに来たのではなく、大きなチャンクまたはインターネット全体をスキャンして、そのIPアドレスを偶然見つけました。
http://blog.erratasec.com/2013/09/masscan-entire-internet-in-3-minutes.html
したがって、ISPは何をプルしようとしているのかをISPが気づいて尋ねてくる可能性がありますが、約1年で自宅のPCからすべてのIPをスキャンできます。一部のブロックは、保護が不十分なサーバー、特にホスティングプロバイダーに割り当てられたブロックを含む可能性が高くなります。これらのブロックのみをスキャンすることは、非常に安く、高速で、簡単であり、成功の可能性は比較的高くなります。
単一のIPからのスキャンは問題が発生します。これは、IPが間もなくブロックされるため、これらの人々がボットネットまたは商業的に同等のクラウドサービスを使用するためです。独自のボットネットを構築する必要はありません。代わりに ボットネットを借りる ができます。
開いているポートのIPアドレスをスキャンするのは簡単な作業だからです。
[〜#〜] zmap [〜#〜] ( NMAPより1300倍速い )などの多くのツールは、数時間あればインターネット全体をスキャンできますまともなインターネット接続。
あなたがポート80でインターネット全体をスキャンしたい場合のように(あなたのISPは尋ねるかもしれません):
Sudo zmap -p 80 0.0.0.0/0
また、ZMAPはプライベートIPアドレスをスキャンしません(blacklist.confファイルにあるため)。
ほとんどの場合、特定のIPがあなたのものであることを知らない可能性があります。しかし、彼らはあなたのホスティング会社に属しているIPプールを知っており、その情報を使用してアクティブなホストをスキャンします。 iptablesを使用して、ボックスのセキュリティを改善したり、接続の数や接続タイプを制限したりできますが、それ以外にできることはありません。インターネットは情報を共有するために使用されることを意図していた。共有したくない場合は、ボックス(開発ボックス)を外してください。それが開発ボックスである場合は、ローカルに移動し、LANの外部からアクセスできないようにすることをお勧めします。