Drive-by-downloads は、ユーザーの操作なしの自動ダウンロードです。
大きなファイルをアップロードしてユーザーにメールで通知するための無料サービス( これ 、ge.ttやWeTransferなど)を提供しています。
デフォルトでは、ユーザーが受け取ったメールのリンクをクリックすると、開かれたURLが自動的にファイルをダウンロードします(http-equiv="refresh"
メタタグ)。
使いやすさを維持しながらユーザーのリスクを最小限に抑えるために、以下を計画しました。
アップロードされたファイルのファイル拡張子に基づいて、自動ダウンロードを行うか、手動ダウンロードリンクのみを提供します。
現在、私は次のようなファイル拡張子を考えることができます:
exe, com, bat, cmd, msi, vbs, js, jscript
「自動ダウンロードに対して安全ではない」としてフィルターされ、ファイル拡張子は次のようになります。
bmp, gif, jpg
安全であると見なされます。
私の質問:
特定の種類のファイルの自動ダウンロードを省略した場合、(最小限でも)メリットはありますか?
それとも単なる「 セキュリティシアター 」という単純なものですか?
( サーバー上で自動ウイルススキャンと削除も行っています )
要約すると:
人々はourサーバーにコンテンツをアップロードし、以前にアップロードしたファイルへのダウンロードリンクをメールで他のユーザーに通知することができます。
私たちのサービスがドライブバイダウンロードマルウェアの拡散に悪用されていないことを確認したいと思います。
電子メールのダウンロードURLは一般公開されており、悪意のあるユーザーがマルウェアを拡散するために配布する可能性があるため、ダウンロードごとのソースになる可能性があります。
特定の種類のファイルの自動ダウンロードを省略した場合、(最小限でも)メリットはありますか?
攻撃者は信頼できるWebサイトを使用してファイルをアップロードし、これらのファイルへのリンクを使用してから、ドライブバイダウンロード攻撃またはフィッシングメールの内部に侵入しました。サイト自体は信頼されているため、ダウンロードは許可されます。したがって、場合によっては自動ダウンロードを禁止することは、マルウェアからユーザーを保護する良い方法です。マルウェアの配布には使用されないため、サイトの評判を保護するのにも役立つ場合があります。
ただし、通常、特定のタイプをブラックリストに登録するだけでは不十分です。代わりに、特定の無害なタイプをホワイトリストに登録し、その他すべての自動ダウンロードを禁止する必要があります。安全なタイプは通常、画像、ビデオなどのみですが、マルウェアを配布するために使用される安全でないタイプは、javascript、html、css(どちらもjavascriptを含めることができます)、およびもちろん、あらゆる種類のアーカイブ、実行可能ファイルなどです。PDFおよびオフィス文書は、ドライブバイダウンロード攻撃またはフィッシングメールで使用されるため、安全ではないと見なされます。
(サーバー上で自動ウイルススキャンと削除も行っています)
多くの場合、アンチウイルスは、新しいマルウェアが配布されたときに最初に追いつく必要があります。したがって、アンチウイルスがサーバー上のあらゆる種類のマルウェアをキャッチすることを期待するだけでは不十分です。
特定の種類のファイルの自動ダウンロードを省略した場合、(最小限でも)メリットはありますか?
ドライブバイダウンロードが発生したときにそれを検出して防止しようとしているのであれば、攻撃者が別の方法を知らない場合のメリットは最小限ですが、それは本質的にセキュリティシアターです。
しかし、あなたが説明しているのは、ダウンロードによるドライブではないではありません。
ドライブバイダウンロードを開始するには、さまざまな方法があります。たとえば、ユーザーのローカルストレージに拡張子が付いた任意のタイプのファイルを書き込み、そのファイルの名前を実際の実行可能ファイルに変更して実行する機能を例にとります。
現在、たとえば、HTML5キャッシュを使用して、ユーザーのコンピューターに任意の拡張子を持つ実行可能ファイルを書き込んでから、Flashでファイルの名前を変更して実行できます。かなりイビルだよね?
Uwe Keimの新しいコメントに基づいてこの投稿を更新しました。
「申し訳ありませんが、おそらく私は最初の質問でこれを説明しすぎました。ユーザーがファイルをアップロードして、システムが他のユーザーに私たちのWebサイトにアクセスするダウンロードリンクを含む電子メールを送信できるようにするサービスを提供しています基本的に、電子メールの添付ファイルには大きすぎるファイルを「送信」します。」
これはドライブバイダウンロードの問題ではありませんが、潜在的にそれを引き起こす可能性があります。
ドライブバイダウンロードとは、ユーザーに入力せずにプログラムを自動的にダウンロードして実行させることです。彼らはファイルの存在に気づかず、ダウンロードダイアログがなく、裏で行われます。はい、ただし、ドライブバイダウンロードではない、その存在が認識されている悪意のあるファイルを提供することができます。それはありふれた基本的なtrojan horse
。
ドライブバイダウンロードがどのように機能するかを理解してほしいので、念のためこのブロックを追加します。何だかわからないと思います。 実行可能なXSS/SQLインジェクション保護がすでにある場合は、このセクションを無視できます。
これはXSS/SQLインジェクションの脆弱性で行われる可能性があります。入力をサニタイズしないでcheckしてください。 1つの方法は、すべての一般的なファイル名(AZ、az、0-9、ピリオド、アポストロフィ、角かっこなど)を許可するファイル名の正規表現があることを確認することです。これは、入力を実際にサニタイズするものではありません。不正な入力を禁止します。
ファイル名にもアポストロフィを使用できます。 準備されたステートメントを使用し、not文字列連結を任意の形式で使用する。あなたはそれをアスキーのみにしたいと思うでしょう。ダウンロード用にファイルを出力するときは、特殊文字を置き換える必要があります。
ORMまたはシリアル化されたデータを使用していると仮定すると、改行しない文字を出力するときに問題はありません。ただし、出力をサニタイズして、すべての潜在的な改ページタグをそれぞれのhtmlエンティティに置き換えることを強くお勧めします。なぜなら、-dontinfoil hat-攻撃者が面白いエクスプロイトにより何らかの形で正規表現チェックを回避した場合に備えて、追加の保護が必要になります。
これらのタグをページに挿入したくない場合:<% %>
、<?php ?> <script>
、</script>
、またはanythingと<
または>
null/length check
+ Regex input check
+ prepared statements/parameterized queries
+ output sanitation
=清楚。
だれでもファイルに任意の拡張子またはMIME時間を与えることができ、後でエクスプロイトを使用して再構築できるため、マルウェアの作成者が重大なミスを犯さない限り、この方法では検出できません。
さらに、あなたのアンチウイルスがすぐにそれを検出しないことを心配する必要もあります。残念ながら、ほとんどのアンチウイルスプログラムは難読化によって打ち負かされます。一人に頼るのであれば、多くの分野で、それは最近、本質的に誤った安心感です。
そして、あなたが説明している方法はドライブバイダウンロードではありません。それは単なるトロイの木馬です。
ほとんどのWebサイトは、ファイルを自動的にダウンロードするように試みていません。マルウェアのWebサイトにはあります。ほとんどの正当なWebサイトは、次のようなものを実装します"ダウンロードがX秒以内に開始されない場合は、ここをクリックしてください。"
これは主にユーザビリティの理由からより良いアイデアですが、それは人々がさまざまな理由であなたのウェブサイトを離れることを防ぐかもしれませんが、まったく追加のセキュリティを提供しません。
自動リンクではなく、ダウンロードしているものをユーザーに正確に伝えるダウンロードページを表示することで、問題がなくなると思います。これは、いくつかを追跡するのに非常に便利です。ユーザーが
両方のビットです。少しセキュリティといくつかのセキュリティシアター。
誰かがあなたのダウンロードシステムを悪用し、それに偽のダウンロードを挿入しない限り、大きなメリットはありませんが、この変更を実装するかどうかにかかわらず、そうすることができます。
ただし、ダウンロードページを表示すると、ユーザーが間違ったファイルをダウンロードできない可能性があるため、非常に便利です。