GNU/Linux >> Linux の 問題 >  >> Linux

Windows マルウェアを Wine で実行すると、Linux コンピューターに害を及ぼす可能性がありますか?

ファイル システムとインターネットへのアクセスについては、特にホーム フォルダーがデフォルトで書き込み権限でマップされているため、正しいと言えます。これは、ドキュメントを台無しにする可能性があることを意味します 同様に、たとえば、Open Office ドキュメントにマクロを追加したり、mp3 ファイルを削除したり、興味深いファイルをインターネット上の誰かに送信したりすることもできます。

はい、Firefox プロファイルに書き込み、アドオンをインストールできます .

インターネットに接続すると、C&C サーバーからコマンドを取得できるようになります コンピューターをドローンに変えます。

一部のマルウェアは、標準の Windows フォルダー以外の場所を見つけられないと思います。ただし、すべてのドライブをスキャンするものもあります 興味深い場所のために。


理論的にはそうです。

まず、Wine の背景について簡単に説明します。 Wine は、Windows 実行可能ファイルを実行するための実行可能ローダーを提供します。また、ここで説明する binfmt ハンドラーをオプションでインストールまたは使用します。これは、Linux カーネルが実行するローダーを推測する方法です。たとえば、カーネルに組み込まれている場所には、Linux の ELF ファイル用の binfmt ハンドラーがあります。これらの実行可能ファイルからの関数呼び出しは、Wine ランタイムによって同等の Linux システム コールに変換されます。 Wine FAQ は、wine がエミュレーターであるという問題を扱います。

質問に戻りますが、Windows マルウェアは Linux ボックスに感染する可能性がありますか?私は理論的にイエスと言いました - あなたが直面するさまざまな脅威は次のとおりです:

  • フォーマット ハンドラのバグ。特別に細工された実行可能ファイルにより、Wine が PE ファイルを誤ってロードする場合、それを悪用できる可能性があります。
  • Wine の関数変換のバグ。これは、「Windows API のバグ」と言っているのと同じです。Wine で変換された特定の関数がバッファ オーバーフローなどの影響を受けやすい場合、悪用される可能性があります。
  • 関数呼び出しが翻訳されていること。この事実自体が、悪意のあるアクティビティが発生する可能性があることを意味します。
  • Wine インストールの設定と制限。どのファイル システムをマッピングしましたか?実行可能ファイルはこの「chroot」をエスケープできますか?

ここには重要な条件が 1 つあります。Wine への感染を認識している、または感染を計画しているということです。マルウェアが Wine で実行されることを想定して作成されている場合、Wine 固有のエクスプロイトを使用し始める可能性があり、Z:が / にマップされていることを検出して適切なアクションを実行する可能性があります。上記のリストの最初のポイントは、発生する可能性が最も低いものですが、発生した場合に最も損害を与えるものでもあります.

ただし、ほとんどのマルウェアは Wine 用に作成されていません。 Wine が Windows API を実装する方法は、Windows が API を実装する方法とは異なるため、Wine は別のビルド ターゲットと考えることができます。ほとんどのマルウェアは Windows を真っ向から狙っているため、被害は "Windows" のインストールのみに発生すると予想されます。実際、一部のマルウェアは、Wine 開発者が API 関数の厳密な使用を想定しており、Windows が別のものを許可している場合、実行されない可能性があります。

つまり、簡単に言えば、Wine は、任意の Windows プログラムを実行できるようにすることで、攻撃対象領域をかなり増加させます。あらゆるソフトウェアに適用されるのと同じ一般規則が Wine にも適用されます。

  • 必要ですか?そうでない場合は、インストールしないでください。
  • 最新ですか?そうでない場合は、更新してください。
  • 何を実行するかに注意してください。ダウンロード、アクセス、実行に注意する代わりにはなりません。

C 構造化例外 (MS 固有ですが、Wine でエミュレートされています) を行ってから長い時間が経ちましたが、構文はこれに近いものです。 Z がマッピングされていなくても、これを使用する人は大いに楽しむことができます。

bool isLinux = 0;
__try {
    asm {
        mov AL, 172
        int 80h
    }
    isLinux = 1;
} __except {}
if (isLinux)
   asm {
      /* Linux shellcode here */
   }

Linux
  1. Linuxでシングルコアコンピューターを復元する方法

  2. ボトルを使用してLinux上でWindowsソフトウェアを簡単に実行

  3. Linuxでxargsを使用してファイルを移動するにはどうすればよいですか?

  1. Windows DLL を検査するための Linux ツール

  2. Xamarin で Linux アプリケーションを開発できますか?

  3. Linux サーバーを Windows DNS サーバーに登録する方法

  1. 誰でもInkscapeでLinuxを利用できます

  2. Linuxでお気に入りのWindowsアプリケーションを実行する

  3. Linux Docker コンテナーで実行しているときに証明書を読み取れない - Windows で動作する