web-dev-qa-db-ja.com

ClamAVを使用して、URLでインターネット経由でファイルをスキャンします

URLを指定して、インターネット経由でファイルをスキャンする必要がある場合があります。 ClamAVのドキュメントには、この能力に関する情報は見つかりませんでした。それは可能ですか?スキャンの結果を取得するにはどうすればよいですか?

1
アレックス

ファイルをスキャンするには、ダウンロードする必要があります。それがあなたのサーバーであり、あなたがそれへのリモートアクセスを持っている場合のみ、サーバー上でそれをスキャンすることができます。そのため、ターミナルからダウンロードし、ダウンロード後すぐにスキャンを実行する場合は、次のようなコマンドを使用する必要があります。

wget -O /tmp/filetoscan http://LINK_TO_THE_FILE && clamscan /tmp/filetoscan

または、ダウンロード後にファイルが不要な場合は、clamscanにパイプできます。

 wget -qO- http://LINK_TO_THE_FILE | clamscan -

上記はファイルをダウンロードしますが、唯一の違いはストレージに保存しないことです。 (したがって、処理中も帯域幅が使用されます。ファイルがクリーンであると判断した場合、PCで必要な場合は再ダウンロードする必要があります。)

ダウンロードしたくない場合は、クラウドサービスを使用してダウンロードしてスキャンする必要があります。たとえば、 virustotal を実行し、ClamAVでファイルをスキャンします。 Virustotalには public API もあり、これを使用して端末または作成したプログラムからスキャンを開始できます。

ClamAVがインストールされているサーバーで、sshにアクセスできる場合は、サーバーにsshアクセスし、クライアントでスキャンするのと同じようにファイルをスキャンします。次のようなsomwthingを使用できます:

ssh YOUR_USER@`echo "example.com/file1" | awk -F "/" '{print $1}'` "clamscan /var/www`echo "example.com/file1" | awk -F ".com" '{print $2}'`"

もちろん、これはサーバーのルート(/var/www)およびURLからファイルパスを再構築する際に考慮する必要があるサーバー上に他の設定があるかどうか。ただし、サーバーの設定方法がわかっているため、それを行うことができます。

3
falconer

Curlを使用してこれを行うことができます。

curl http://example.com/file | clamscan -

デフォルトでは、curlはファイルをドライブスペースに保存しません。

3
user12345