web-dev-qa-db-ja.com

ユーザーのファイルのアップロードをウイルス対策でスキャンする必要はありますか?

Webアプリケーションにより、ユーザーはファイルをアップロードできます。これらのファイルをアンチウイルスでスキャンする必要はありますか?

2つのシナリオで答えを聞きたいです。

  1. アップロード時にファイルのタイプはチェックされません。それらは、インターネットから直接アクセスできないフォルダーに保存されます。ファイルには実行権限がありません。次に、ユーザーがいくつかのURLをクエリすると、ファイルはContent-Disposition:attachmentで返されます。
  2. アップロード時にファイルのタイプはチェックされません。そのコンテンツは、いくつかのHTML/XML/JSONなどで解析されます。パーサー。解析後、ファイルはサーバーに保存されません
6
Andrei Botalov

2番目のケースでウイルススキャナーを使用する理由はわかりません。ウイルス対策のコード実行の脆弱性の可能性は、私の解析ライブラリの脆弱性の可能性よりも大きいようです。特に、解析ライブラリがメモリセーフな言語で書かれている場合はなおさらです。

最初のケースでは、アンチウイルスを使用します。ダウンロード用のウイルスファイルを提供するのは良い考えのように聞こえないからです。人と自動化されたWebサイトレピュテーションシステム(たとえば、Googleセーフブラウジング)の両方が、ウイルスのダウンロードをWebサイトの評判を損なう可能性があります。
私はまだそのようなファイルをダウンロード用に提供するかもしれませんが、それは明示的な警告とユーザーの確認の後でのみです。ボットがダウンロードできないようにする確認。

6
CodesInChaos

シナリオ1では、コンテンツがサーバー上で実行されず、ユーザーがブラウザーでファイルを表示するのではなく、ファイルをダウンロードすることを強制されると想定して安全です。これは合理的にファイルをチェックする責任をユーザーにオフロードするので、あなたの観点から安全です。

シナリオ2では、必ずAVを実行します。パーサーライブラリに脆弱性がある可能性があるため、ライブラリに渡す前に、いくつかの基本的なチェックを確実に行う必要があります。

4
Polynomial

誰かが商用便で荷物の一部として密封された荷物を運ぶように頼んだら、あなたはどうですか?

アップロードされたコンテンツを再公開するのではなく、ユーザーが自分のファイルを格納するためのリポジトリを提供するだけの場合でも、サーバーでスローされたものを受け入れるのは無謀です。

ただし、AVスキャンはマルウェアから保護する唯一の方法ではありません-MIMEタイプを検証し、ロスレス変換方法を使用してフォーマットを切り替えることで、脅威の大部分を中和できます(例:jpgをpngに、MSWord docをpdf *に変換)。ファイルに独自のパーサーを実装していて、それがXMLなどの基本的な形式である場合は、すでに内容を確認しています。AVスキャンはおそらくやり過ぎです。しかし、すべてのコードと同様に、安全でなければなりません。

*)ただし、変換にMSWordを使用しません!

1
symcbean

アップロード時にファイルのタイプはチェックされません。それらは、インターネットから直接アクセスできないフォルダーに保存されます。ファイルには実行権限がありません。次に、ユーザーがいくつかのURLをクエリすると、ファイルはContent-Disposition:attachmentで返されます。

添付ファイルを配信する前にスキャンするのは丁寧なことですが、保存に問題があるものの、ウイルススキャンに合格するものはたくさんあります。

これは少し偏執狂的かもしれませんが、人々があなたを差別する証拠を植えるソフトウェアを意図的に作成しない場合は、それを実行するソフトウェアを意図せずに作成しないでください。

アップローダーについてどのような情報を記録しますか?児童ポルノや爆弾作成計画をサーバーにアップロードして、匿名のチップを警察に送る敵がいるのではないでしょうか。

アップロード時にファイルのタイプはチェックされません。そのコンテンツは、いくつかのHTML/XML/JSONなどで解析されます。パーサー。解析後、ファイルはサーバーに保存されません。

ウイルス対策スキャナーは、ここでは役に立ちそうにありません。上記と同じ質問です。ファイルから抽出した情報の健全性をチェックしたり、保存した情報が外部ソースからのものであることを証明したりできますか?

1
Mike Samuel