web-dev-qa-db-ja.com

圧縮されたEXEファイルはLinuxサーバーに無害ですか?

私は自分のサイトでマルウェアスキャナーを実行し、圧縮されたEXEファイルの束を潜在的なリスクファイルとしてマークしました(これらのファイルはユーザーによってアップロードされました)。 Macでファイルを解凍できるので、これらは実際のZipファイルであり、名前が変更されたPHPファイルのようなものではありません。

ですから、Zipファイルは私のWebサーバーにとってリスクになりません。

49
Xavin

それらが実際に圧縮されたWindows exeファイルである場合、それらを実行しようとするWineのようなものがなければ、それらはLinuxシステムに無害でなければなりません。

しかし、それらがWebパスにある場合、それらはマルウェアである可能性があり、Webサイトの訪問者にbigリスクをもたらします(そして、最終的にマルウェアソースとしてマークされてユーザーが醜くなる場合)彼らがあなたのサイトを訪問しようとしたときの警告)。

84
Sven

Macでファイルを解凍できるので、これらは実際のZipファイルであり、名前が変更されたphpファイルではありません。

この場合、あなたは正しいおそらくですが、あなたの仮定は常に成り立つとは限りません。 Zipアーカイブ は、任意のデータを付加しても 有効です。そのため、無害なデータと悪意のあるファイルを同時に含む有効なZipアーカイブであるファイルを作成することは十分に可能ですPHPスクリプト。特に難しいことではありません。 PHPコードとZipファイルを連結し、 __halt_compiler() を使用して)PHP追加されたZipアーカイブデータを解析しようとしません。

このトリックは、自己解凍型のZipファイルを作成するために合法的に使用されますが、他の隠しデータや実行可能コードを同じ方法でZipファイルに付加することは完全に可能です。一部のプログラムは、そのような変更されたZipファイルを開くことを拒否する場合があります(ただし、そうであれば、技術的にZip形式の仕様に違反しています)、またはデフォルトでファイルをZipファイル以外のものとして識別しますが、通常、そのようなZipファイルを必要とするコードにファイルを追加すると、おそらく1つとして受け入れられます。

そのようなトリックのより一般的な悪意のある使用法は、Zipベースのコンテナ(JARファイルなど)のエクスプロイトコードを、 [〜#〜] gifarのように、GIF画像のような無害なものとして偽装することです[〜#〜] エクスプロイト)ですが、他の方向にも使用できない理由はありません。たとえば、 PHPスクリプトのアップロードを禁止する単純なファイルアップロードフィルターをバイパスしますが、アップロードされたファイルが同時に両方であるかどうかを確認せずにZipファイルを許可します。

62
Ilmari Karonen

考慮すべき重要な考慮事項が少なくとも2つあります。

  1. これらのファイルがWebサイトで配布されている場合、誰かがあなたのサイトからマルウェアを取得した場合、あなたは責任を問われる可能性があります。少なくとも、サイトにマルウェアのフラグが立てられる可能性があります。マルウェアスキャナーの警告を無視する場合は、ファイルが有害である可能性があることを、アップローダーとダウンローダーに少なくとも通知する必要があります(インターネットからダウンロードされたEXEは時々)。
  2. マルウェアスキャン以外に、これらのファイルを処理しますか?添付ファイルまたは他のそのようなアップロードの自動処理は、ファイルの内容が何かになる可能性があるため、常に潜在的に危険です。ユーティリティソフトウェアがエクスプロイトに対して脆弱で、一見ナイスZip/exeにユーティリティを標的とする有害なコンテンツが含まれている場合は、EXEファイルを実行する必要さえありません。マルウェアのスキャンに失敗したものをサーバーに処理させたくありません。

したがって、サーバーが何をしているのかに応じて、ファイルは潜在的にがサーバーや他のユーザーに害を及ぼす可能性があります。私はインターネットからダウンロードされたEXEにかなり警戒しているので、可能なダウンローダーは、ここで最も危険にさらされる可能性のあるユーザーだと思います。

11
user391905

file FILENAME.exeコマンドでファイルを確認するだけで、Linuxサーバーでファイルが実行可能かどうかを確認できます。 Elfバイナリ(Linuxで使用される実行可能形式)には.exe拡張子を付けて名前を付けることができるため、疑いを持たないLinux管理者を混乱させるため、これらのファイルが実行可能でないことを盲目的に信頼する前に確認することをお勧めします。

2
grovkin

どのデータも(バグのある)プログラムに有害である(または有害にされる)可能性があることについて誰も言及しなかったことに驚いています。それがファジーの基礎です。たとえば、JPEG(またはJPEGのような)ファイルを使用すると、(特定の?)JPEGデコーダでバッファオーバーフローが発生し、サービス拒否から任意のコードの実行に至るまで、あらゆることが発生します。これは、既存のデータ処理プログラムを破壊することです。新しい実行ファイルを持ち込む必要はありません!そして、これがサンドボックス化、入力のサニタイズ、最小特権の原則が必要とされる理由です。

そのため、あなたの場合、Zipファイルが(特定の?)Zipデコードエンジンで問題を引き起こす可能性があります。 Zipファイルに害を及ぼすためのネイティブ実行可能ファイルを含める必要はありません。

とはいえ、スキャナーは別のより粗いレベルで動作しています。私が話している種類のリスクがそれらのファイルに存在する場合、それらを処理した瞬間にすでに打撃を受けています:)。

Macでファイルを解凍できるので、これらは実際のZipファイルであり、名前が変更されたPHPファイルのようなものではありません。

データを埋め込み、ファイルを有効なまま表示する攻撃がありました。正しく構成されていないサーバーまたは誤ってコード化されたアプリでは、これらによりサーバーでコードが実行される可能性があります。

ですから、それにも注意してください。

1
rubenvarela

理想的に行う必要がある追加のチェックは、ユーザーがアップロードしたファイルが実際に許可したものであるかどうかをチェックする php finfo method であり、ユーザーがファイルをだますためにファイルの名前を変更したものではありませんシステム。

0
Kanuj Bhatnagar