web-dev-qa-db-ja.com

Shodanはインターネットに接続されたデバイスをどのようにクロールしますか?

Shodan がインターネットに接続されたデバイスをクロールし、データベースに追加する方法を知りたいです。たとえば、Googleは、すでに見つけたWebサイトのリンクをたどって新しいWebサイトを見つけることを知っていますが、その戦略は、インターネットに接続されたデバイスが相互にリンクしていないため機能しません。

初段はどのような方法に従っていますか?

6
Dan Barzilay

可能なIPv4アドレスは約40億個しかないため、十分な帯域幅があれば、それらすべてを試すことが可能です。 利用可能なツール があります。

Shodan自身が [〜#〜] faq [〜#〜] に文書化し、カスタムコードを使用していることを示します。

このプロジェクトのために、自家製の分散型ポートスキャナーが開発されました。

ここで「分散」とは、接続が複数のマシンから行われることを意味します。インターネット全体のスキャンは、定義上、 恥ずかしいほど並列 の問題であるため、問題にはなりません。


関連するケースは、いわゆる Internet Census 2012 で、一部の未知の人々がいくつかの脆弱なホスト(通常、デフォルトの管理者資格情報を受け入れるように構成されたホームルーター)を繰り返しスキャンし、それらのシステムを一時的に乗っ取ってそれらを登録します「最も一般的なポート」でのインターネット全体のスキャンでは、これは自己複製ボットネットの場合です。彼らは彼らの管理下にある420000のクライアントに達したと言います。完全なインターネットスキャンの場合、各クライアントが試すことのできるIPアドレスは10000だけなので、これは非常に慎重に行うことができます(たとえば、1時間に1秒あたり3つのプローブIP)。

7
Tom Leek